实验一线性表的顺序存储结构实验报告页_第1页
实验一线性表的顺序存储结构实验报告页_第2页
实验一线性表的顺序存储结构实验报告页_第3页
实验一线性表的顺序存储结构实验报告页_第4页
实验一线性表的顺序存储结构实验报告页_第5页
全文预览已结束

下载本文档

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

文档简介

1、攀 枝 花 学 院 实 验 报 告实验课程 数据结构 实验项目:线性表的顺序存储 实验日期:系: 班级: 姓名: 学号: 同组人: 指导老师: 成绩: 实验目的: 1、掌握线性表的顺序存储结构。 2、能熟练地利用顺序存储结构实现线性表的基本操作。 3、能熟练地掌握顺序存储结构中算法的实现。 实验仪器设备、药品、器材 1、硬件环境微型计算机一台2、软件环境windows98/2000/xp/win7操作系统、调试程序vc 6.0. 实验原理(装置)无 实验步骤(内容)1、 建立含有若干个元素的顺序表,并将结果在屏幕上输出。 1、顺序表源代码如下创建了顺序表的头文件seqlist.h主要代码如下:

2、5 void initlist(seqlist& l)l.data=new datatypeinitsize;if (! l.data)cerr<<"存储错误分配!n"exit(1);l.maxsize=initsize;l.n=0;void creat(seqlist& l)/获取线性表的值int i,n; initlist(l);printf("请输入线性表的元素个数:");scanf("%d",&n);printf("请输入%d个顺序表元素:n",n);for(i=0;i&

3、lt;n;i+)scanf("%d",&l.datai);l.n=n;void clearlist(seqlist& l)/清空顺序表实 验 报 告 附 页l.n=0;int length(seqlist& l)/计算顺序表的长度return l.n;int isempty(seqlist& l)/判断空否return (l.n=0)?1:0;int isfull(seqlist& l)/判断满否return (l.n=l.maxsize)?1:0;int search(seqlist& l,datatype x)/顺序查找算

4、法for(int i=1;i<=l.n;i+)if(l.datai-1=x)return i;return 0;int locate(seqlist& l,int i)/顺序定位算法if(i>=1 && i<=l.n) return i;else return 0;void copy(seqlist& l1,seqlist& l2)/顺序表复制算法l1.maxsize=l2.maxsize;l1.n=l2.n;if(!l1.data)l1.data=new datatypel1.maxsize;if(! l1.data)cout<

5、<"存储分配错误!n"exit(1);for(int i=1;i<=l2.n;i+)l1.datai-1=l2.datai-1;int insert(seqlist& l,int i,datatype& x)/顺序表插入if(l.n=l.maxsize) return 0;if(i<0 | i>l.n+1) return 0;for(int j=l.n;j>=i;j-)l.dataj=l.dataj-1;l.datai-1=x;l.n+;return 1;int remove(seqlist& l,int i,datat

6、ype& x)/顺序表删除if(!l.n)return 0;if(i<1 | i>l.n)return 0;x=l.datai-1;for(int j=i;j<l.n;j+)l.dataj-1=l.dataj;l.n-;return 1;主函数代码如下:void main()int ch;int i;datatype x;seqlist l;l.n=0;initlist(l);printf(" *n");printf("*欢迎进入chen cheng 顺序表结构*n");creat(l);menu();/*显示菜单*/scanf

7、("%d",&ch); /*输入一个数符*/while(1) switch(ch) case 0: printf("the list:"); print(l);break; case 1: printf("the list's length is %dn", length(l); break; case 2: i=isempty(l); if(i=0) printf("顺序表非空!n"); if(i=1) printf("顺序表为空!n"); break;case 3: i=is

8、full(l); if(i=1) printf("顺序表已满!n"); if(i=0) printf("顺序表未满!n"); break;case 4:printf("x="); scanf("%d",&x); i=search(l,x); if(i=0) printf("查找失败!"); else printf("查找成功:n%d为查找数!n",i); break;case 5:printf("i="); scanf("%d"

9、,&i); i=locate(l,i); if(i=0) printf("no find %dn",i); else printf("the location of %d is %dn",l.datai-1,i); break;case 6: printf("创建一个新的顺序表!n"); seqlist la; la.n=0; initlist(la);copy(la,l);printf("输出顺序表l的值:n");print(l);printf("n");printf("输出

10、顺序表la的值:n");print(la);break;case 7:printf("i="); scanf("%d",&i); printf("n"); printf("x="); scanf("%d",&x); printf("n"); if(insert(l,i,x)=1) printf("insert success !n");printf("输出插入元素后的顺序 表l!n");print(l); el

11、se printf("insert failed !n"); break; case 8:printf("i="); scanf("%d",&i); if(remove(l,i,x) printf("delete success!nthe deleted data is %d!n",x); printf("输出删除后元素后的顺序表l!n"); print(l); else printf("delete failed !n"); break;case 9:printf(

12、"创建一个新的顺序表!n"); seqlist lc; la.n=0; initlist(lc); creat(lc); merge(lc,l); printf("输出求交后的顺序表的值: "); print(lc); break;case 10:printf("创建一个新的顺序表!n"); seqlist lb; la.n=0; initlist(lb); creat(lb); intersection(lb,l); printf("输出求交后的顺序表的值: "); print(lb); break; case 11: printf("eixt!"); printf("n"); exit(1); printf("再次输入选择:"); scanf(&qu

温馨提示

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

评论

0/150

提交评论