书签 分享 收藏 举报 版权申诉 / 22
上传文档赚钱

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

  • 上传人(卖家):2023DOC
  • 文档编号:5579133
  • 上传时间:2023-04-25
  • 格式:DOCX
  • 页数:22
  • 大小:14.70KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据结构-期末数据结构实验测试题(含答案)docx(DOC 21页).docx》由用户(2023DOC)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据结构期末数据结构实验测试题含答案docxDOC 21页 数据结构 期末 实验 测试 答案 docx DOC 21
    资源描述:

    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);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据结构-期末数据结构实验测试题(含答案)docx(DOC 21页).docx
    链接地址:https://www.163wenku.com/p-5579133.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库