欢迎来到天天文库
浏览记录
ID:17875996
大小:42.00 KB
页数:7页
时间:2018-09-07
《有序表的建立、插入与删除》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一、有序表的建立、插入与删除一、实验目的1、了解有序表的顺序存贮结构。2、掌握有序表元素在内存中是怎样存贮的。3、在有序表中实现如下操作:(1)插入一个新元素到第i个位置。使原来标号为增1。(2)删除第i个位置的元素。(3)存一个新元素到第i个位置。(4)读表(5)检索表中第i个元素。(6)寻表的长度二、实验原理(一)线性表是最常用的而且也是最简单的一种数据结构,线性表是N个数据元素的有限序列。例如26个英文元素的字母表:(A,B,C,D,···)。其数据结构的描述为:Linear_list=(D,R)其中:D={ai
2、a
3、i属于D0,i=1,2,3,···}R={N},N={
4、i=2,3,4,···}。本实验是以数组的形式把有序表存放在计算机内存的一个连续的区域内,这样便有:LOC(ai+1)=LOC(ai)+m。其中m是存放每个元素所占的内存字数。LOC(ai)=LO+m·(i-1)。其中LO是ai的地址,即首地址。(二)实验程序说明插入一个新元素到第i个位置,既把元素ai向后移一个位置,成为元素ai+1,把新元素放入到第i个位置,其他元素依次后移。存一新元素到第i个位置是把元素ai冲掉后存上新值。删除第i个元素就是把余后的
5、元素依次向前移一个位置。即:以元素ai+1,ai+2,···,依次取代ai,ai+1,···。删除后的表长是n-1(n是原表长)。三、程序流程图开始循环初始化顺序表P=0否?结束P值合适吗?P=1插入P=2删除P=3读新值P=4读表P=5检索P=6查表长调用SHOW过程显示功能表四、参考程序/*有序表的建立、插入与删除*/staticintarray[100];intj,i,n,p;intch;voiddu(){printf("pleasetellmewhichnumbersdoyouoperate:");scanf("%d"
6、,&i);while(i>n){printf("ERROR,pleaseenternewelement");scanf("%d",&i);}}voidda(){printf("thelistis:");for(j=0;j7、;printf("2:delete");printf("3:savenewelement");printf("4:readlist");printf("5:check");printf("6:thelengthofthelist");printf("0:end");printf("-----------------------------------");}main(){printf("pleaseinputthelengthoflist:");scanf("%d",&n);printf("")8、;printf("pleaseenternumber:");for(i=0;i=0&&p<=6){switch(p){case1:printf("theinsertednumberplacesthefrontoftheoperation");du();for(j=n-1;j>=i-1;j--)array[j+1]=array[j];printf(9、"pleaseenternumber:");scanf("%d",&ch);array[i-1]=ch;n+=1;da();break;case2:du();for(j=i-1;j<=n;j++)array[j]=array[j+1];n-=1;da();break;case3:du();printf("pleaseenternewnumber:");scanf("%d",&ch);printf("");array[i-1]=ch;da();break;case4:da();break;case5:du();pri10、ntf("whatisthe%dnumber:",i);printf("%3d",array[i-1]);break;case6:printf("thelengthofthelistis:");printf("%3d",n);break;case0:p=0;break
7、;printf("2:delete");printf("3:savenewelement");printf("4:readlist");printf("5:check");printf("6:thelengthofthelist");printf("0:end");printf("-----------------------------------");}main(){printf("pleaseinputthelengthoflist:");scanf("%d",&n);printf("")
8、;printf("pleaseenternumber:");for(i=0;i=0&&p<=6){switch(p){case1:printf("theinsertednumberplacesthefrontoftheoperation");du();for(j=n-1;j>=i-1;j--)array[j+1]=array[j];printf(
9、"pleaseenternumber:");scanf("%d",&ch);array[i-1]=ch;n+=1;da();break;case2:du();for(j=i-1;j<=n;j++)array[j]=array[j+1];n-=1;da();break;case3:du();printf("pleaseenternewnumber:");scanf("%d",&ch);printf("");array[i-1]=ch;da();break;case4:da();break;case5:du();pri
10、ntf("whatisthe%dnumber:",i);printf("%3d",array[i-1]);break;case6:printf("thelengthofthelistis:");printf("%3d",n);break;case0:p=0;break
此文档下载收益归作者所有