教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

2009级数据结构实验指导书(5)

来源:网络收集 时间:2026-05-19
导读: 数据结构实验指导书 } else { y=s->data[s->top]; s->top=s->top-1; return y; } } ElemType StackTop(SeqStack *s) { if(StackEmpty(s)) return 0; else return s->data[s->top]; } void Dec_to_Ocx (int N) /* n

数据结构实验指导书

}

else { y=s->data[s->top]; s->top=s->top-1; return y; } }

ElemType StackTop(SeqStack *s) { if(StackEmpty(s)) return 0; else return s->data[s->top]; }

void Dec_to_Ocx (int N) /* n是非负的十进制整数,输出等值的八进制数*/ {

SeqStack *S; /*定义一个顺序栈*/ ElemType x; Init_SeqStack(S); /*初始化栈*/ if(N<0) {

printf(\。\; return; }

if(!N) Push(S,0);

while(N) /*自右向左产生八进制的各位数字,并将其进栈*/ { Push(S,N%8); /*余数入栈 */ N=N/8; /*商作为被除数*/ }

printf(\

while(StackEmpty(S)) /*栈非空时退栈输出*/ { x=Pop(S);

printf(“%d”,x); }

printf(\}

main( ) { int n;

printf(\scanf(\Dec_to_Ocx (n); }

三、注意事项

1、进栈、出栈栈顶指针都要改变。

2、数制转换余数入栈后商作为被除数。

思考题

1、实现循环队列的顺序存储

- 16 -

数据结构实验指导书

实验三 串及数组的实验

一、实验目的及要求

1、了解串及数组的两种存储方法,掌握数组在作为存储结构中的地址计算方法。

2、了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会稀疏矩阵运算采用的处理方法。 二、实验内容

(一)顺序串的基本操作

#define MaxSize 100 typedef struct {

char str[MaxSize]; int len; } strtype;

void assign(strtype *s,char t[]) {

int i=0;

while (t[i]!='\\0') { s->str[i]=t[i]; i++; }

s->str[i]='\\0'; s->len=i; }

void strcopy(strtype *s,strtype t) {

int i;

for (i=0;i<=t.len;i++) s->str[i]=t.str[i]; }

int length(strtype s) {

return(s.len); }

int equal(strtype s,strtype t) {

int i=0;

if (s.len!=t.len) return(0); else { for (i=0;i

- 17 -

数据结构实验指导书

strtype concat(strtype s,strtype t) {

strtype r; int i,j;

for (i=0;i

for (j=0;j<=t.len;j++) r.str[s.len+j]=t.str[j]; r.len=i+j; return(r); }

int index(strtype s,strtype t) {

int i,j,k;

for (i=0;s.str[i];i++) for (j=i,k=0;s.str[j]==t.str[k];j++,k++) if (!t.str[k+1]) return(i); return(-1); }

strtype substr(strtype s,int i,int k) {

strtype t; int j;

for (j=i;j

t.str[t.len]='\\0'; return(t); }

void insert(strtype *s,int i,strtype t) {

strtype r; int j;

if (i>s->len) printf(\位置参数值错误\\n\ else { for (j=i;jlen;j++) /*将s的第i个位置之后的字串复制到r中*/ r.str[j-i]=s->str[j]; r.len=j-i; r.str[r.len]='\\0'; for (j=0;jstr[i+j]=t.str[j]; for (j=0;jstr[i+t.len+j]=r.str[j]; s->len=s->len+t.len; /*修改s串长度*/ s->str[s->len]='\\0'; } }

- 18 -

数据结构实验指导书

void delete(strtype *s,int i,int k) {

int j;

if (i>s->len || i+k>s->len) printf(\位置参数值错误\\n\ else { for (j=i+k;jlen;j++) /*将s的第i+k个位置之后的字串前移k位*/ s->str[j-k]=s->str[j]; s->len=s->len-k; /*修改s的长度*/ s->str[s->len]='\\0'; } } …… 此处隐藏:99字,全部文档内容请下载后查看。喜欢就下载吧 ……

2009级数据结构实验指导书(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/594284.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)