实验一线性表

上传人:daj****de 文档编号:204164352 上传时间:2023-04-26 格式:DOCX 页数:9 大小:23.49KB
收藏 版权申诉 举报 下载
实验一线性表_第1页
第1页 / 共9页
实验一线性表_第2页
第2页 / 共9页
实验一线性表_第3页
第3页 / 共9页
资源描述:

《实验一线性表》由会员分享,可在线阅读,更多相关《实验一线性表(9页珍藏版)》请在装配图网上搜索。

1、数据结构试验报告线性表学院:姓名学号时间:专业班级:线性表一、实验目的1掌握线性结构中顺序表和链表的基本概念、基本操作和应用;2掌握线性表的基本操作:建表、插入、删除、输出等运算在顺序存储结构和链式存储结构上的实现。3. 通过本次实习加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。 熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现。二、实验内容1. 编写生成线性表的函数,线性表的元素从键盘输入,分别使用顺序和链式存储结构存 储;2. 编写在线性表中插入一个元素的函数;3. 编写在线性表中删除一个元素的函数;4. 编写输出线性表的函数;5. 编写主函数,调用以

2、上各函数,以便能观察出原线性表以及作了插入或删除后线性表的屏幕输出。三、实验报告要求1. 画出程序流程图并做简单分析2. 源代码(包括主要结构、主要语句、函数注释说明)3. 运行结果(包括程序如何使用,输入数据和输出结果)4. 实验体会和问题分析四、基本原理(一)线性表是最常用的而且也是最简单的一种数据结构,线性表是N个数据元素的有限序列。例如26个英文元素的字母表(A, B, C, D, ),其数据结构的描述为:Linear_list=(D, R)其中,D=ai |ai 属于 ElemSe t, i =1, 2, 3, R二0-1,円| i=2, 3, 4,。本实验是以数组的形式把线性表存放

3、在计算机内存的一个连续的区域内,这样便有:LOC(ai+1)=LOC(ai)+mLOC(ai)=L0+m*(i-1)其中,m是存放每个元素所占的内存字数,L0是a的地址,即首地址。(二)程序说明插入一个新元素到第i个位置,既把元素ai向后移一个位置,成为元素ai+1,把新元 素放入到第i个位置,其他元素依次后移。插入后的表长是n+1 (n是原表长)。修改第 i 个元素,到第 i 个位置是把元素 ai 冲掉后存上新值。删除第i个元素就是把余后的元素依次向前移一个位置。即:以元素ai+1,3+2, , 依次取代厲,ai+1,删除后的表长是n-1 (n是原表长)。(三)线性表链式存储(选作)。五、实

4、验程序#include#include#define MAXSIZE 20/ 数组最大界限typedef int ElemType; /数据元素类型 typedef structElemType aMAXSIZE; /一维数组子域int length;/表长度域SqList;/ 顺序存储的结构体类型SqList a,b,c;void creat_list(SqList *L);void out_list(SqList L);void insert_sq(SqList *L,int i,ElemType e); ElemType delete_sq(SqList *L,int i);int lo

5、cat_sq(SqList L,ElemType e); /主函数 void main()int i,k,loc;ElemType e,x;char ch;do printf(nnn);printf(n 1.建立线性表);printf(n 2.插入数据元素);printf(n 3.删除数据元素);printf(n 4.查找数据元素);printf(n 0.结束程序运行);printf(n=);printf(n 请输入你的选择(1,2,3,4,0); scanf(%d,&k);switch(k)case 1: creat_list(&a);out_list(a);break;case 2:pri

6、ntf(n 请输入插入位置:); scanf(%d,&i);printf(n 请输入要插入的数据元素值:); scanf(%d,&e);insert_sq(&a,i,e);out_list(a);break;case 3:printf(n 请输入删除位置:); scanf(%d,&i);x=delete_sq(&a,i);out_list(a);if(x!=-1)printf(n删除数据元素为:dn,x);elseprintf(要删除的数据元素不存在!);break;case 4:printf(n 请输入要查找的数据元素值: ); scanf(%d,&e);loc=locat_sq(a,e);

7、if(loc=-1)printf(n 未找到指定数据元素! );elseprintf(n已找到,数据元素位置是%d,loc);break;while(k!=0);printf(n按回车键,返回.n);ch=getchar();/建立线性表void creat_list(SqList*L) int i;printf(请输入线性表的长度:);scanf(%d,&L-length); for(i=0;ilength;i+)prin tf(数据元素 %d=,i);scanf(%d,&(L-ai);/输出线性表void out_list(SqList*L)int i;for(i=0;ilength-1;

8、i+)printf(%10d,L-ai);/在线性表的第 i 个位置插入数据元素 evoid insert_sq(SqList*L,int i,ElemType e) int j;if(iL-length)prin tf(n输入插入的位置不存在:);for(j=L-length;j=i;j-) L-aj=L-aj-1;L-ai-1=e;L-length+;/删除第 i 个数据元素,返回其值 ElemType delete_sq(SqList*L,int i)int j,y;if(iL-length)return -1;y=L-ai-1; for(j=i;jlength;j+) L-aj-1=L

9、-aj;L-length-;return y;/查找值为 e 的元素,返回它的值int locat_sq(SqList L,ElemType e) int i=0; while(i=L.length-1&L.ai!=e) i+;if(i10=11=22=33=41表元元元运 性居IE-渡予 线数数数程 、V入專束12 3 4 0请输入你的选择2请输入插入位置:2请输入要插入的数据元素值:515234WW仃表元元元运准居居眉予-V入專束12 3 4 0请输入你的选择3!1呱伽遛躅剛表元元元运 准居居眉予 、W入專束12 3 4 0请输入你的选择4请输入要查找的数据元素值:3 已找到,数据元素位萱是3表元元元运 线数数数程 、艾專束12 3 4 0请输入你的选择0按回车键,返回*ress anij key to continueH六、实验体会和问题分析运行结果为:Compiling.线性表.cC: 线性表.c(83) : warning C4028: formal parame ter 1 differen t from declara tion Linking.线性表.exe - 0 error(s), 0 warning(s)试验调试时会出现少些“;”的情况,今后一定要避免。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!