有序表的建立插入与删除_第1页
有序表的建立插入与删除_第2页
有序表的建立插入与删除_第3页
有序表的建立插入与删除_第4页
有序表的建立插入与删除_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一、有序表的建立、插入与删除一、实验目的 、了解有序表的顺序存贮结构。 、掌握有序表元素在内存中是怎样存贮的。、 在有序表中实现如下操作:(1) 插入一个新元素到第i个位置。使原来标号为增1。(2) 删除第i个位置的元素。 (3) 存一个新元素到第i个位置。(4) 读表 (5) 检索表中第i个元素。(6) 寻表的长度 二、实验原理(一) 线性表是最常用的而且也是最简单的一种数据结构,线性表是N个数据元素的有限序列。例如26个英文元素的字母表:(A,B,C,D,···)。其数据结构的描述为:Linear_list=(D,R)其中:D=ai|ai属于D0,i=1,

2、2,3,···R=N,N=<ai-1,ai>|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个元素就是把余后的元素依次向前移

3、一个位置。即:以元素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过程显示功能表四、参考程序/* 有序表的建立、插入与删除 */static int array100;int j,i,n,p;int ch; void du() printf("please tell me which numbers do you operate:"

4、;); scanf("%d",&i); while (i>n) printf("ERROR,please enter new element"); scanf("%d",&i); void da() printf("the list is:"); for(j=0;j<n;j+) printf("%3d",arrayj); printf("n"); void show() printf("-n"); printf(" t

5、he function of the listn"); printf(" 1: insertn"); printf(" 2: deleten"); printf(" 3: save new elementn"); printf(" 4: read listn"); printf(" 5: checkn"); printf(" 6: the length of the listn"); printf(" 0: endn"); printf(&quo

6、t;-n"); main() printf("please input the length of list:"); scanf("%d",&n); printf("n"); printf("please enter number:"); for (i=0;i<n;i+)scanf("%d",&arrayi); p=1; while (p!=0) show(); printf ("enter p: "); scanf("%d"

7、;,&p); if(p>=0&&p<=6) switch(p) case 1: printf("the inserted number places the front of the operationn"); du(); for (j=n-1;j>=i-1;j-) arrayj+1=arrayj; printf("please enter number:n"); scanf("%d",&ch); arrayi-1=ch; n+=1; da(); break; case 2: du()

8、; for(j=i-1;j<=n;j+) arrayj=arrayj+1; n-=1; da(); break; case 3: du(); printf("please enter new number:n"); scanf("%d",&ch); printf("n"); arrayi-1=ch; da(); break; case 4: da(); break; case 5: du(); printf("what is the %d number:",i); printf("%3dn",arrayi-1); break; case 6: printf("the length of

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论