欢迎来到天天文库
浏览记录
ID:47604262
大小:109.00 KB
页数:14页
时间:2019-09-27
《实验报告__线性表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、...姓名王倩学号1104180204班级计科1102年级1102级指导教师李翠西安财经学院信息学院《算法与数据结构》实验报告实验名称线性表实验室实验日期参考学习...顺序表的基本运算一、实验目的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()参考学习...{SeqList*L;L=(SeqList*)malloc(sizeof(SeqList));L->last=-1;returnL;}设调用函数为主函数。主函数对初始化函数的调用如下:main(){SeqList*L;L=init_SeqList();…}(2)插入运算intInsert_SeqList(SeqList*L,inti,datatypex){intj;i
5、f(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);}⑶.删除运算参考学习...intDelete_SeqList(SeqList*L,inti){intj;if(i<1
8、
9、i>(L->last+1)){pri
10、ntf("thiselementdon'texist!");return(0);}for(j=i;j<=L->last;j++)L->data[j-1]=L->data[j];L->last--;return(1);}然后依次输出计算结果。一、实验数据记录及分析(可包括错误提示,原因,如何解决等)参考学习...参考学习...一、实验总结参考学习...上机实验创建了一个顺序表,并且熟练的掌握了线性存储结构的完成了在顺序表上的插入元素,删除元素,按值查找。通过元素的存储顺序反映线性表中数据元素之间的逻辑关系;可随机存取顺序表的元素;顺序表的插入、删除操作
11、要通过移动元素实现。七、代码清单#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();}}voidlocatdisply(Seqlist*l,intn)//输出指定位置的元素{in
12、tlog=0;while(log!=n&&loglast){log++;}printf("%c"
此文档下载收益归作者所有