欢迎来到天天文库
浏览记录
ID:22593066
大小:170.01 KB
页数:26页
时间:2018-10-30
《经典数据结构上机题—答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构上机实验题目实验一线性表的顺序存储结构实验学时2学时背景知识:顺序表的插入、删除及应用。目的要求:1.掌握顺序存储结构的特点。2.掌握顺序存储结构的常见算法。实验内容1.输入一组整型元素序列,建立顺序表。2.实现该顺序表的遍历。3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。4.判断该顺序表中元素是否对称,对称返回1,否则返回0。5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。6.输入整型元素序列利用有序表插入算法建立一个有序表。7.利用算法6建立两个非递减有
2、序表并把它们合并成一个非递减有序表。8.利用该顺序结构实现循环队列的入队、出队操作。8.编写一个主函数,调试上述算法。#include#include#defineOVERFLOW0#defineMAXSIZE100typedefintElemType;typedefstructlist{ElemTypeelem[MAXSIZE];intlength;}Sqlist;voidCreatlist(Sqlist&L){inti;printf("请输入顺序表的长度:");/
3、/输入一组整型元素序列,建立一个顺序表。scanf("%d",&L.length);for(i=0;i4、置i,否则返回错误信息{inti,k=-1;for(i=0;i=i;j--)L.elem[j]=L.elem[j-1];L.elem[j]=x;L.length++;}voidD5、elete(Sqlist&L,inti)//删除顺序表中第i个元素{intj;for(j=i;j6、gth;j>=i;j--)L.elem[j]=L.elem[j-1];L.elem[i-1]=x;L.length++;}voidCreatlist_sorted(Sqlist&L)//利用有序表插入算法建立一个有序表{inti,num;ElemTypex;L.length=0;printf("请输入顺序表的长度:");scanf("%d",&num);for(i=1;i<=num;i++){scanf("%d",&x);Insert(L,x);}}voidMerger(Sqlist&p,Sqlist&r7、,Sqlist&c)//建立两个非递减有序表,并把它们合并成一个非递减有序表{ElemType*a,*b,i=0,j=0,k=0;a=&p.elem[0];b=&r.elem[0];c.length=p.length+r.length;while(i=*b){c.elem[k]=*b;b++;k++;j++;}else{c.elem[k]=*a;a++;k++;i++;}}if(j==r.length)for(;k8、elem[k]=*a;a++;}elseif(i==p.length)for(;k
4、置i,否则返回错误信息{inti,k=-1;for(i=0;i=i;j--)L.elem[j]=L.elem[j-1];L.elem[j]=x;L.length++;}voidD
5、elete(Sqlist&L,inti)//删除顺序表中第i个元素{intj;for(j=i;j6、gth;j>=i;j--)L.elem[j]=L.elem[j-1];L.elem[i-1]=x;L.length++;}voidCreatlist_sorted(Sqlist&L)//利用有序表插入算法建立一个有序表{inti,num;ElemTypex;L.length=0;printf("请输入顺序表的长度:");scanf("%d",&num);for(i=1;i<=num;i++){scanf("%d",&x);Insert(L,x);}}voidMerger(Sqlist&p,Sqlist&r7、,Sqlist&c)//建立两个非递减有序表,并把它们合并成一个非递减有序表{ElemType*a,*b,i=0,j=0,k=0;a=&p.elem[0];b=&r.elem[0];c.length=p.length+r.length;while(i=*b){c.elem[k]=*b;b++;k++;j++;}else{c.elem[k]=*a;a++;k++;i++;}}if(j==r.length)for(;k8、elem[k]=*a;a++;}elseif(i==p.length)for(;k
6、gth;j>=i;j--)L.elem[j]=L.elem[j-1];L.elem[i-1]=x;L.length++;}voidCreatlist_sorted(Sqlist&L)//利用有序表插入算法建立一个有序表{inti,num;ElemTypex;L.length=0;printf("请输入顺序表的长度:");scanf("%d",&num);for(i=1;i<=num;i++){scanf("%d",&x);Insert(L,x);}}voidMerger(Sqlist&p,Sqlist&r
7、,Sqlist&c)//建立两个非递减有序表,并把它们合并成一个非递减有序表{ElemType*a,*b,i=0,j=0,k=0;a=&p.elem[0];b=&r.elem[0];c.length=p.length+r.length;while(i
8、elem[k]=*a;a++;}elseif(i==p.length)for(;k
此文档下载收益归作者所有