实验报告线 性表

实验报告线 性表

ID:44362918

大小:116.00 KB

页数:14页

时间:2019-10-21

实验报告线 性表_第1页
实验报告线 性表_第2页
实验报告线 性表_第3页
实验报告线 性表_第4页
实验报告线 性表_第5页
资源描述:

《实验报告线 性表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、姓名王倩学号1104180204班级计科1102年级1102级指导教师李翠西安财经学院信息学院《算法与数据结构》实验报告实验名称线性表实验室实验日期第13页顺序表的基本运算一、实验目的1.掌握线性表的顺序存储结构(顺序表)的含义与实现方法;2.熟练掌握线性表在顺序存储结构上的插入、删除、查找等操作。二、实验相关理论及内容1.实验相关理论①线性表是最简单、最基本也是最常用的一种线性结构。线性表有两种存储方法:顺序存储和链式存储。线性表的基本操作是插入、删除和检索等。②了解有关顺序表的概念和性质;掌握线性表的基本操作的原理以及实现其的

2、算法。2.实验内容编写实现顺序表的基本算法(初始化、查找、插入、删除等)的函数,并在此基础上设计一个主程序完成如下功能:⑴初始化顺序表L;⑵建立顺序表L,如(a,b,c,d,c);⑶输出顺序表L的长度;⑷输出顺序表L的第i个元素,如第3个元素;⑸输出给定元素的位置,如输出元素a的位置;⑹在第i个元素前插入给定元素,如在第4个元素前插入元素f;⑺删除顺序表L的第i个元素,如删除顺序表L的第3个元素。注:最好编写输出顺序表L的函数供主程序调用,以检验⑵⑹⑺操作是否成功。三、实验环境WindowsXP2007,VisualC++6.0四

3、、实验步骤(必须包括代码描述)Ⅰ.插入元素在顺序表的某个位置,首先是要查看该位置是否合理,假如顺序表中有n个元素,要插入元素在第i个位置,那么插入的位置i应当在第1与第n+1个元素位置之间,然后利用插入算法,将第n个元素一直到原第i个元素依次后移,腾出一个空位,将新数据插入在该位置,最后将顺序表的表长加1;Ⅱ.删除顺序表中的元素,首先仍然要判断要删除元素是否在顺序表的合理位置,若是合理位置,则将包括该元素在内的后面所有元素依次向前前移,直接用后继覆盖直接前驱,最后将顺序表的表长减1;Ⅲ.查找某个元素是否在顺序表中,则可以利用顺序查

4、找的方法,从第一个元素开始依次将元素关键字的值与给定元素关键字的值进行比较,若相等则返回该元素在顺序表中的位置,若不相等则返回值为空。实现代码⑴.顺序表的初始化(构造一个空表)SeqList*init_SeqList()第13页{SeqList*L;L=(SeqList*)malloc(sizeof(SeqList));L->last=-1;returnL;}设调用函数为主函数。主函数对初始化函数的调用如下:main(){SeqList*L;L=init_SeqList();…}(2)插入运算intInsert_SeqList(S

5、eqList*L,inti,datatypex){intj;if(L->last==MAXSIZE-1){printf("tableisfull!");return(-1);}if(i<1

6、

7、i>(L->last+2)){printf("placeiswrong!");return(0);}for(j=L->last;j>=i-1;j--)L->data[j+1]=L->data[j];L->data[i-1]=x;L->last++;return(1);}⑶.删除运算第13页intDelete_SeqList(SeqList*L

8、,inti){intj;if(i<1

9、

10、i>(L->last+1)){printf("thiselementdon'texist!");return(0);}for(j=i;j<=L->last;j++)L->data[j-1]=L->data[j];L->last--;return(1);}然后依次输出计算结果。一、实验数据记录及分析(可包括错误提示,原因,如何解决等)第13页第13页一、实验总结上机实验创建了一个顺序表,并且熟练的掌握了线性存储结构的完成了在顺序表上的插入元素,删除元素,按值查找。通过元素的存储顺序反映线性表中

11、数据元素之间的逻辑关系;第13页可随机存取顺序表的元素;顺序表的插入、删除操作要通过移动元素实现。七、代码清单#includetypedefstruct{chars[10];intlast;}Seqlist;voidinitlist(Seqlist*l)//初始化线性表{l->last=(-1);}voidcreat(Seqlist*l)//创建线性表{charch;ch=getchar();while(ch!='#'){l->last=l->last+1;l->s[l->last]=ch;ch=getchar(

12、);}}voidlocatdisply(Seqlist*l,intn)//输出指定位置的元素{intlog=0;while(log!=n&&loglast){log++;}printf("%c",l->s[log]);}voiddisl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。