ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:71.09KB ,
资源ID:583380      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-583380.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验一线性表.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验一线性表.doc

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属于ElemSet,i=1,2,3,R=| i=2,3,4, 。本实验是以数组的形式把线性表存放在计算机内存的一个连续的区域内,这样便有:LOC

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

4、MAXSIZE 20 / 数组最大界限 typedef int ElemType; /数据元素类型 typedef struct ElemType 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 locat_sq(SqList L

5、,ElemType e); /主函数 void main() int i,k,loc;ElemType e,x;char ch;doprintf(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:printf(n请输入插入位置:);sc

6、anf(%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);if(loc=-1)printf(n未找到指定数据

7、元素!);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+) printf(数据元素%d=,i); scanf(%d,&(L-ai); /输出线性表void out_list(SqList*L)int i; for(i=0;ilength-1;i+) printf(%10d,L-ai);

8、/在线性表的第i个位置插入数据元素e void insert_sq(SqList*L,int i,ElemType e) int j;if(iL-length)printf(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-aj; L-length-;return y;/

9、查找值为e的元素,返回它的值int locat_sq(SqList L,ElemType e)int i=0;while(i=L.length-1&L.ai!=e)i+;if(i=L.length-1)return(i+1);elsereturn(-1);测试结果为:六、 实验体会和问题分析运行结果为:Compiling.线性表.cC:线性表.c(83) : warning C4028: formal parameter 1 different from declarationLinking.线性表.exe - 0 error(s), 0 warning(s)试验调试时会出现少些“;”的情况,今后一定要避免。指导教师评语: 成绩评定:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2