资源描述:
《合工大宣城校区数据结构实验报告-顺序表》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构实验报告姓名学号专业班级指导教师实验时间11月3日实验地点计算中心实验一顺序表实验1.实验目标①熟练掌握线性表的顺序存储结构。②熟练掌握顺序表的有关算法设计。③根据具体问题的需要,设计出合理的表示数据的顺序结构,并设计相关算法。2.实验内容和要求I.实验要求①顺序表结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现;比如存储、算法实现放入文件:seqList.h②实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求;③程序有适当的注释。II.实验内容〈1〉求顺序表中第i个元素(函数),若不存在,报错。<2〉在第i个结点前插入值为x
2、的结点〈3>删除顺序表中第i个元素结点<4>在一个递增有序的顺序表L中插入一个值为x的元素,并保持其递增有序特性<5〉将顺序表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的顺序表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果〈6〉求两个递增有序顺序表L1和L2中的公共元素,放入新的顺序表L3中〈7〉删除递增有序顺序表中的重复元素,并统计移动元素次数,要求时间性能最好扩展实验:<1>递增有序顺序表Ll、L2,对2表进行合并,并使得合并后成为一个集合,集合的元素放回L1表中保存,要求时间性能最好<2〉(递增有序)顺序表表示集合A、B,实现:C=A
3、nB,C=AuB,OA—BA=AnB,A=AuB,A=A_B<3>(递增有序)顺序表表示集合A、B,判定A是否B的子集<4〉(2011)(15分)一个长度为L(L^l)的升序序列S,处在第个位置的数称为S的中位数。例如,若序列Sl=(ll,13,15,17,19),则S1的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数1.数据结构设计typedefintelementType;clas
4、sseqList{public:seqList();//初始化空表intLength();//求表长度(元素个数)intInput(intx);//写入数据boolgetElement(inti,elementType&x);//取表元素intlocate(elementTypex);//定位元紊位置intlistlnsert(inti,elementTypex);//在第i个结点前插入值为x的结点intlistDelete(inti);//删除顺序表中第i个元素intseek(inti);//査找第i个元紊elementTypedata[MAXLEN];//存放表元素的
5、数组intlistLen;//记录表中的元素个数};4.算法设计〈1〉、〈2〉、〈3〉为基本算法,〈4〉.自后向前,如果找到比该值小的元素值,则插入当前位置,否则就让当前值往后一一位,再判断下一个值。<5〉.定义两个顺序表M,N,依次判断表中个元素,如果data[i]%2==l,则将该值输入M中,否则则输入N中,M储存奇数结点,N储存偶数结点〈6〉.创建表L3,如果LI.data[ia]>L2.data[ib],则ib++,如果LI.data[ia]〈L2.data[ib],则ia++,否则,就将相同元素加入L3中。〈7〉.将元素分为两部分,一部分是已经处理元素,和待处理
6、元素。已处理部分返回L中,用下标i表示,待处理第一个元素用j表示,如果L.data[i]==L.data[j],则处理j下一个元素,j++;如果L.data[i]〈L.data[j],令L.data[i+l]=L.data[j],j++,i++,直至表尾,令表长度为i+1.扩展实验:〈1〉.对L1与L2中元素进行判断,将L2中元素插入到L1中对应位置,并保证递增有序性不变。〈2〉.对于采用C的运算,将符合要求的元素插入到C中,对于不采用C的运算,就对A中元素进行插入与删除操作。〈3〉.对A中元素按顺序进行判断,如果出现A.data[ia]〈B.data[ib],则表示A不
7、为B的子集,如果对A中每个元素进行判断,均可在B中找到,则A为B的子集。〈4〉.因为两个序列A和B等长升序,故只需按照递增有序的顺序找到第A.1istLen的yuansu即可,可以对A,B元素进行排序,到第A.1istLen结束即可输出该值为中位数。5.运行和测试〈1〉求顺序表中第i个元素(函数),若不存在,报错。第一组数据:顺序表长度n彡10,i分别为5,n,0,n+1,n+2①输入顺序表1,2,3,4,5,6,7,8,9本木木木木*木木木木木*木木木木木木木木木****************************?難
8、