ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:14.70KB ,
文档编号:5579133      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5579133.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(2023DOC)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(数据结构-期末数据结构实验测试题(含答案)docx(DOC 21页).docx)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

数据结构-期末数据结构实验测试题(含答案)docx(DOC 21页).docx

1、1 某顺序表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回02 某顺序表(自己定义、建立),在合法的位置插入某数据元素3 某顺序表(自己定义、建立),在合法的位置删除某数据元素4 某顺序表(自己定义、建立),就地逆置(即不另设置空间)5 用头插法建立单链表,并输出6 用尾插法建立单链表,并输出7 某单链表(自己定义、建立),就地逆置(即不另设置空间)8 某单链表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回09 某单链表(自己定义、建立),求其长度10 某单链表(自己定义、建立),在合法的位置插入某数据元素11 某单链表(自己定义、建立),在合法的位置删除某数据元素

2、12 某单链表(自己定义、建立),在最后位置插入或删除13 某二叉链表(自己定义、建立),输出前序、中序、后序遍历序列14 某二叉链表(自己定义、建立),求其高度(深度)15 某二叉链表(自己定义、建立),求其叶子结点数16 某二叉链表(自己定义、建立),求其总结点个数17 某二叉链表(自己定义、建立),将其左右子树交换方式:抽签,单人单桌,每组8-10人,杜绝作弊!时间:30分钟总分:100分 数据结构C语言描述10分 数据结构建立30分 基本操作30分 主函数20分 运行结果10分用途:20%计入学业成绩1.某顺序表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0#inclu

3、detypedef struct int elem100; int length;sqlist; void create(sqlist *L,int n) int i;printf(请输入%d个数:n,n);for(i=0;ielemi); L-length=n; void print(sqlist L,int n) int i;printf(顺序表为:);for(i=0;in;i+) printf(-%d,L.elemi);printf(n); int locate(sqlist L,int n) int i,e;printf(请输入需要查找的数:n);scanf(%d,&e);for(i=

4、0;in;i+)if(L.elemi=e) printf(找到该数据:%dn该数据的位置是:%dn,e,i); continue; return 0; main() sqlist l;int m; printf(输入此顺序表总数据的个数:); scanf(%d,&m); create(&l,m); print(l,m);locate(l,m);2. 某顺序表(自己定义、建立),在合法的位置插入某数据元素#includetypedef struct int elem100; int length;sqlist; void create(sqlist *L,int n) int i;printf(

5、请输入%d个数:n,n);for(i=0;ielemi); L-length=n; void print(sqlist L,int n) int i;printf(顺序表为:);for(i=0;in;i+) printf(-%d,L.elemi);printf(n); void insert(sqlist *L,int i,int e) int j; if(iL-length+1) printf(error);for(j=L-length;j=i-1;j-)L-elemj=L-elemj-1;L-elemi-1=e;L-length+; main() sqlist l; int m,e,i;

6、printf(输入此顺序表总数据的个数:); scanf(%d,&m); create(&l,m); print(l,m);printf(请输入需要插入的数据:n);scanf(%d,&e);printf(请输入需要插入数的位置:n);scanf(%d,&i);insert(&l,i,e);print(l,l.length);3. 某顺序表(自己定义、建立),在合法的位置删除某数据元素#includetypedef struct int elem100; int length;sqlist; void create(sqlist *L,int n) int i;printf(请输入%d个数:n

7、,n);for(i=0;ielemi); L-length=n; void print(sqlist L,int n) int i;printf(顺序表为:);for(i=0;in;i+) printf(-%d,L.elemi);printf(n); void del(sqlist *L,int i) int j; if(iL-length+1) printf(error); for(j=i;jlength-1;j+)L-elemj-1=L-elemj;L-length-; main() sqlist l; int m,e; printf(输入此顺序表总数据的个数:); scanf(%d,&m

8、); create(&l,m); print(l,m);printf(请输入需要删除数据位置:n);scanf(%d,&e);del(&l,e);print(l,l.length);4. 某顺序表(自己定义、建立),就地逆置(即不另设置空间)#includetypedef struct int elem100; int length;sqlist; void create(sqlist *L,int n) int i;printf(请输入%d个数:n,n);for(i=0;ielemi); L-length=n; void print(sqlist L,int n) int i;printf(

9、顺序表为:);for(i=0;in;i+) printf(-%d,L.elemi);printf(n); void nizhi(sqlist L,int n) int i,t; for(i=0;in/2;i+) t=L.elemi;L.elemi=L.elemn-i-1;L.elemn-i-1=t; for(i=0;in;i+) printf(-%d,L.elemi);printf(n); main() sqlist l; int m; printf(输入此顺序表总数据的个数:); scanf(%d,&m); create(&l,m); print(l,m);printf(此顺表逆置后为:);

10、 nizhi(l,m);5. 用头插法建立单链表,并输出#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p; L=new Lnode; L-next=NULL; for(i=0;idata=i; p-next=L-next; L-next=p; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data)

11、;p=p-next;printf(n);void main() int m=6; Lnode *head; head=create(m); print(head);6. 用尾插法建立单链表,并输出#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;Linklist r; L=new Lnode; L-next=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p

12、-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);void main() int m=6; Lnode *head; head=create(m); print(head);7. 某单链表(自己定义、建立),就地逆置(即不另设置空间)#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)i

13、nt i; Linklist L; Linklist p;Linklist r; L=new Lnode; L-next=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);void nizhi(Linklist L) Linklist p,q; p=L; p=p-next; L-next=NULL; while(p) q=p; p=p-n

14、ext; q-next=L-next; L-next=q; void main() int m=6; Lnode *head; head=create(m); print(head); printf(此逆置单链表为); nizhi(head); print(head);8. 某单链表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;L

15、inklist r; L=new Lnode; L-next=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);int locate(Linklist L) int i=1,e; Linklist p;p=L-next;printf(请输入需要查找第几个的结点:);scanf(%d,&e);while(p)if(i=e)printf(该结

16、点的数据域是:%dn,p-data);elsereturn 0; p=p-next; i+; void main() int m=6; Lnode *head; head=create(m); print(head); locate(head);9. 某单链表(自己定义、建立),求其长度#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;Linklist r; L=new Lnode; L-nex

17、t=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);int length(Linklist L) int i=0; Linklist p;p=L-next; while(p) p=p-next; i+; return i;void main() int m=6; Lnode *head; head=create(m); print(he

18、ad); printf(单链表长度:%dn,length(head);10. 某单链表(自己定义、建立),在合法的位置插入某数据元素#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;Linklist r; L=new Lnode; L-next=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p-next=NULL; return L;void print(

19、Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);void insert(Linklist L,int i,int e) int j=0; Linklist p,s; p=L; if(!p)|(ji-1) printf(error); while(p&(jnext;+j;s=new Lnode;s-data=e;s-next=p-next;p-next=s; void main() int m=6,i,e; Lnode *head; head=create(m); print(head)

20、; printf(请输入需要插入的数:n);scanf(%d,&e); printf(请输入需要插入数的位置:n); scanf(%d,&i);insert(head,i,e);printf(新的单链表是:); print(head);11. 某单链表(自己定义、建立),在合法的位置删除某数据元素#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;Linklist r; L=new Lnode;

21、L-next=NULL; r=L; for(i=0;idata=i; r-next=p; r=p; p-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p)printf(-%d,p-data); p=p-next; printf(n);void del(Linklist L,int i)Linklist p,q;p=L;int j=0;while(p&(jnext;+j;q=p-next;p-next=q-next;delete q;void main() int m=6,e; Lnode *head; h

22、ead=create(m); print(head); printf(请输入需要删除的结点位置:n);scanf(%d,&e);del(head,e);print(head);12. 某单链表(自己定义、建立),在最后位置插入或删除#includetypedef struct Lnode int data; struct Lnode *next;Lnode,*Linklist;Linklist create(int n)int i; Linklist L; Linklist p;Linklist r; L=new Lnode; L-next=NULL; r=L; for(i=0;idata=i

23、; r-next=p; r=p; p-next=NULL; return L;void print(Linklist L)Linklist p;p=L-next;while(p) printf(-%d,p-data); p=p-next; printf(n);void insert(Linklist L,int e) Linklist p,s; p=L; while(p-next!=NULL)p=p-next;s=new Lnode;s-data=e;s-next=p-next;p-next=s; void del(Linklist L)Linklist p,q;p=L;while(p-nex

24、t!=NULL)q=p;p=p-next;q-next=NULL;delete p;void main() int m=6,e; Lnode *head; head=create(m); print(head); printf(请输入需要插入的数:n);scanf(%d,&e);insert(head,e);printf(新的单链表是:); print(head); printf(删除后的单链表是:n);del(head);print(head);13. 某二叉链表(自己定义、建立),输出前序、中序、后序遍历序列#includetypedef struct Bitnode int data;

25、struct Bitnode *lchild,*rchild;Bilnode,*Bitree;Bitree create() char ch; Bitree t; ch=getchar(); if(ch=*) t=NULL; else t=new Bilnode; t-data=ch; t-lchild=create(); t-rchild=create(); return t; void qianxu(Bitree t) if(t) printf(%c,t-data); qianxu(t-lchild); qianxu(t-rchild); void inorder(Bitree t) if

26、(t) inorder(t-lchild); printf(%c,t-data); inorder(t-rchild); void houxu(Bitree t) if(t) houxu(t-lchild); houxu(t-rchild); printf(%c,t-data); void main() Bitree t;printf(输入:);t=create();printf(这棵二叉树的前序遍历为:n);qianxu(t);printf(n);printf(这棵二叉树的中序遍历为:n);inorder(t);printf(n);printf(这棵二叉树的后序遍历为:n); houxu(t

27、);printf(n);14. 某二叉链表(自己定义、建立),求其高度(深度)#includetypedef struct Bitnode int data; struct Bitnode *lchild,*rchild;Bilnode,*Bitree;Bitree create() char ch; Bitree t; ch=getchar(); if(ch=*) t=NULL; else t=new Bilnode; t-data=ch; t-lchild=create(); t-rchild=create(); return t; int length(Bitree t) int h1,

28、h2;if(t=NULL)return 0; else h1=length(t-lchild); h2=length(t-rchild);if(h1h2)return h1+1;elsereturn h2+1; void main() Bitree t;printf(输入:);t=create();printf(这棵二叉树的高度为:%dn,length(t);15. 某二叉链表(自己定义、建立),求其叶子结点数#includetypedef struct Bitnode int data; struct Bitnode *lchild,*rchild;Bilnode,*Bitree;Bitre

29、e create() char ch; Bitree t; ch=getchar(); if(ch=*) t=NULL; else t=new Bilnode; t-data=ch; t-lchild=create(); t-rchild=create(); return t; int countzero(Bitree t) if(t=NULL) return 0; elseif(t-lchild=NULL&t-rchild=NULL) return 1; else return countzero(t-lchild)+countzero(t-rchild);void main() Bitre

30、e t;printf(输入:);t=create();printf(这棵二叉树叶子结点的个数为:%dn,countzero(t);16. 某二叉链表(自己定义、建立),求其总结点个数#includetypedef struct Bitnode int data; struct Bitnode *lchild,*rchild;Bilnode,*Bitree;Bitree create() char ch; Bitree t; ch=getchar(); if(ch=*) t=NULL; else t=new Bilnode; t-data=ch; t-lchild=create(); t-rch

31、ild=create(); return t; int count(Bitree t) if(t=NULL) return 0; else return count(t-lchild)+count(t-rchild)+1;void main() Bitree t;printf(输入:);t=create();printf(这棵二叉树的总结点个数为:%dn,count(t);17. 某二叉链表(自己定义、建立),将其左右子树交换#includetypedef struct Bitnode int data; struct Bitnode *lchild,*rchild;Bilnode,*Bitr

32、ee;Bitree create() char ch; Bitree t; ch=getchar(); if(ch=*) t=NULL; else t=new Bilnode; t-data=ch; t-lchild=create(); t-rchild=create(); return t; void change(Bitree t)if(t) Bitree a; a=t-lchild; t-lchild=t-rchild; t-rchild=a; change(t-lchild); change(t-rchild);void print(Bitree t) if(t) printf(%c,t-data); print(t-lchild); print(t-rchild); void main() Bitree t;printf(输入:);t=create();printf(交换后的二叉树先序遍历是:n);change(t);print(t);printf(n);

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|