好文档 - 专业文书写作范文服务资料分享网站

实验一线性表的顺序存储结构实验报告页

天下 分享 时间: 加入收藏 我要投稿 点赞

攀 枝 花 学 院 实 验 报 告

实验课程 数据结构 实验项目:线性表的顺序存储 实验日期: 系: 班级: 姓名: 学号: 同组人:

指导老师: 成绩: [ 实验目的:]

1、掌握线性表的顺序存储结构。

2、能熟练地利用顺序存储结构实现线性表的基本操作。 3、能熟练地掌握顺序存储结构中算法的实现。

[ 实验仪器设备、药品、器材 ]

1、硬件环境 微型计算机一台 2、软件环境

Windows98/2000/XP/win7操作系统、调试程序VC 6.0.

[ 实验原理(装置)]

[ 实验步骤(内容)]

一、建立含有若干个元素的顺序表,并将结果在屏幕上输出。 1、顺序表源代码如下

创建了顺序表的头文件SeqList.h

主要代码如下:

void initList(SeqList& L) { L.data=new DataType[initSize]; if (! L.data) { cerr<<\存储错误分配!\\n\ exit(1); } L.maxSize=initSize; L.n=0; };

void Creat(SeqList& L)//获取线性表的值

{ int i,n; initList(L); printf(\请输入线性表的元素个数:\ scanf(\ printf(\请输入%d个顺序表元素:\\n\ for(i=0;i

void clearList(SeqList& L)//清空顺序表 {

1

实 验 报 告 附 页

{ L.n=0; L1.data=new DataType[L1.maxSize]; } if(! L1.data)

{ int Length(SeqList& L)//计算顺序表的长度

{ cout<<\存储分配错误!\\n\ return L.n; exit(1); } }

} int isEmpty(SeqList& L)//判断空否

{ for(int i=1;i<=L2.n;i++) return (L.n==0)?1:0; L1.data[i-1]=L2.data[i-1]; } }; int isFull(SeqList& L)//判断满否 int Insert(SeqList& L,int i,DataType& x)//顺序表插入 { { return (L.n==L.maxSize)?1:0; if(L.n==L.maxSize) return 0; } if(i<0 || i>L.n+1) return 0;

for(int j=L.n;j>=i;j--) int Search(SeqList& L,DataType x)//顺序查找算法

{ L.data[j]=L.data[j-1]; for(int i=1;i<=L.n;i++) L.data[i-1]=x; if(L.data[i-1]==x)return i; L.n++; return 0; return 1; }; }; int Locate(SeqList& L,int i)//顺序定位算法 int Remove(SeqList& L,int i,DataType& x)//顺序表删{ 除 if(i>=1 && i<=L.n) return i; { else if(!L.n)return 0; return 0; if(i<1 || i>L.n)return 0; }; x=L.data[i-1];

for(int j=i;j

{ L.n--; L1.maxSize=L2.maxSize; return 1; L1.n=L2.n; }; if(!L1.data)

主函数代码如下:

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(\输入一个数符*/ while(1) {

switch(ch) { case 0: printf(\

2

实 验 报 告 附 页

Print(L); Copy(La,L); break; printf(\输出顺序表L的值: case 1: printf(\\\n\Length(L)); Print(L); break; printf(\ case 2: i=isEmpty(L); printf(\输出顺序表La的值: if(i==0) \\n\

Print(La); printf(\顺序表非 break; 空!\\n\

if(i==1) case 7:printf(\

scanf(\ printf(\顺序表为 printf(\空!\\n\

break; printf(\ case 3: i=isFull(L); scanf(\ if(i==1) printf(\

if(Insert(L,i,x)==1) printf(\顺序表已 { 满!\\n\

if(i==0) printf(\ printf(\顺序表未 printf(\输出插入元素后的顺满!\\n\序 表L!\\n\ break; Print(L); case 4:printf(\ } scanf(\ else i=Search(L,x); printf(\ !\\n\ if(i==0) break; printf(\查找失败!\ case 8:printf(\ else scanf(\

if(Remove(L,i,x)) printf(\查找成功:\\n%d { 为查找数!\\n\

break; printf(\ case 5:printf(\ deleted data is %d!\\n\ scanf(\ printf(\输出删除后元素后的 i=Locate(L,i); 顺序表L!\\n\ if(i==0) printf(\ Print(L); find %d\\n\ } else else printf(\ printf(\of %d is %d\\n\ break; break; case 9:printf(\创建一个新的顺序表!\\n\

SeqList Lc; case 6: printf(\创建一个新的顺序

La.n=0; 表!\\n\

SeqList La; initList(Lc); La.n=0; Creat(Lc); initList(La); Merge(Lc,L);

3

实 验 报 告 附 页

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(\ printf(\ exit(1); } printf(\再次输入选择:\ scanf(\ } }

程序运行结果如下:

2、对刚建立的表实现插入、删除、修改、查找,并将结果在屏幕上输出。

4

实 验 报 告 附 页

查找: 插入:

删除:

二、实验总结

第一次建立一个头文件,然后进行主函数的调用,在这个过程中,由于在编辑源代码时,除了很多错,导致编译时有很多的错误。同时由于对出错的信息不实很了解,在改错的过程中,有进一步了解了c语言的语法规则。并懂得了顺序表的运算模式。

5

实验一线性表的顺序存储结构实验报告页

攀枝花学院实验报告实验课程数据结构实验项目:线性表的顺序存储实验日期:系:班级:姓名:学号:同组人:指导老师:
推荐度:
点击下载文档文档为doc格式
9eh38380gb83hrt8bf1m52amw9lhy70085w
领取福利

微信扫码领取福利

微信扫码分享