欢迎来到天天文库
浏览记录
ID:37886053
大小:191.00 KB
页数:31页
时间:2019-06-02
《2008级数据结构验证性实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构实验指导书实验一线性表的顺序存储实验一、实验目的1、掌握用VisualC++6.0上机调试顺序表的基本方法2、掌握顺序表的基本操作,插入、删除、查找、以及有序顺序表的合并等算法的实现二、实验内容1、顺序表基本操作的实现[问题描述]当我们要在顺序表的第i个位置上插入一个元素时,必须先将顺序表中第i个元素之后的所有元素依次后移一个位置,以便腾空一个位置,再把新元素插入到该位置。若是欲删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置。[基本要求]要求生成顺序表时,可以键盘上读取元素,用
2、顺序存储结构实现存储。[实现提示]要实现基本操作,可用实现的基本操作,也可设计简单的算法实现。[程序实现]#include#include#includetypedefintDataType;#definemaxnum20typedefstruct{intdata[maxnum];intlength;}Seqlist;intinsert(Seqlist*L,inti,DataTypex){intj;if(i<0
3、
4、i>(*L).length+1)
5、{printf("i值不合法!");return0;}if((*L).length>maxnum-1){printf("表满不能插入!");return0;}for(j=(*L).length;j>=i;j--)(*L).data[j+1]=(*L).data[j];(*L).data[i]=x;(*L).length++;return1;}intdeleteList(Seqlist*L,inti){intj;if(i<0
6、
7、i>(*L).length){printf("删除位置错误!")
8、;return0;}for(j=i+1;j<=(*L).length;j++)(*L).data[j-1]=(*L).data[j];(*L).length--;return1;}voidcreatlist(Seqlist*L){intn,i;printf("请输入顺序表L的数据个数:");scanf("%d",&n);for(i=0;i9、th=n-1;printf("");}voidprintout(Seqlist*L){inti;for(i=0;i<=(*L).length;i++){printf("data[%d]=",i);printf("%d",(*L).data[i]);}printf("");}voidmain(){Seqlist*L;charcmd;inti,x;L=(Seqlist*)malloc(sizeof(Seqlist));creatlist(L);do{printf("i,I-----插入")10、;printf("d,D-----删除");printf("q,Q-----退出");do{cmd=getchar();}while((cmd!='i')&&(cmd!='I')&&(cmd!='d')&&(cmd!='D')&&(cmd!='q')&&(cmd!='Q'));switch(cmd){case'i':case'I':printf("PleaseinputtheDATA:");scanf("%d",&x);printf("Where?");scanf("%d",&i);i11、nsert(L,i,x);printout(L);break;case'd':case'D':printf("WheretoDelete?");scanf("%d",&i);deleteList(L,i);printout(L);break;}}while((cmd!='q')&&(cmd!='Q'));}-31-数据结构实验指导书2、有序顺序表的合并[问题描述]已知顺序表la和lb中的数据元素按非递减有序排列,将la和lb表中的数据元素,合并成为一个新的顺序表lc[基本要求]lc中的数据元素仍按12、非递减有序排列,并且不破坏la和lb表[程序实现]#include#definemaxnum20typedefintDataType;typedefstruct{DataTypedata[maxnum];intlength;}Seqlist;intMergeQL(Seqlistla,Seqlistlb,Seqlist*lc){inti,j,k;if(la.length+1+lb.length+1>maxnum){printf("ar
9、th=n-1;printf("");}voidprintout(Seqlist*L){inti;for(i=0;i<=(*L).length;i++){printf("data[%d]=",i);printf("%d",(*L).data[i]);}printf("");}voidmain(){Seqlist*L;charcmd;inti,x;L=(Seqlist*)malloc(sizeof(Seqlist));creatlist(L);do{printf("i,I-----插入")
10、;printf("d,D-----删除");printf("q,Q-----退出");do{cmd=getchar();}while((cmd!='i')&&(cmd!='I')&&(cmd!='d')&&(cmd!='D')&&(cmd!='q')&&(cmd!='Q'));switch(cmd){case'i':case'I':printf("PleaseinputtheDATA:");scanf("%d",&x);printf("Where?");scanf("%d",&i);i
11、nsert(L,i,x);printout(L);break;case'd':case'D':printf("WheretoDelete?");scanf("%d",&i);deleteList(L,i);printout(L);break;}}while((cmd!='q')&&(cmd!='Q'));}-31-数据结构实验指导书2、有序顺序表的合并[问题描述]已知顺序表la和lb中的数据元素按非递减有序排列,将la和lb表中的数据元素,合并成为一个新的顺序表lc[基本要求]lc中的数据元素仍按
12、非递减有序排列,并且不破坏la和lb表[程序实现]#include#definemaxnum20typedefintDataType;typedefstruct{DataTypedata[maxnum];intlength;}Seqlist;intMergeQL(Seqlistla,Seqlistlb,Seqlist*lc){inti,j,k;if(la.length+1+lb.length+1>maxnum){printf("ar
此文档下载收益归作者所有