




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告姓名学号专业班级指导教师实验时间11月3日实验地点计算中心实验一 顺序表实验1. 实验目标 熟练掌握线性表的顺序存储结构。 熟练掌握顺序表的有关算法设计。 根据具体问题的需要,设计出合理的表示数据的顺序结构,并设计相关算法。2. 实验内容和要求.实验要求 顺序表结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现;比如存储、算法实现放入文件:seqList.h 实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求; 程序有适当的注释。.实验内容求顺序表中第i个元素(函数),若不存在,报错。在第i个结点前插入值为x的结点删除顺序表中第i个元素结点在一个递增有序的顺序表L中插入一个值为x的元素,并保持其递增有序特性将顺序表中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的顺序表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果求两个递增有序顺序表L1和L2中的公共元素,放入新的顺序表L3中删除递增有序顺序表中的重复元素,并统计移动元素次数,要求时间性能最好扩展实验: 递增有序顺序表L1、L2,对2表进行合并,并使得合并后成为一个集合,集合的元素放回L1表中保存,要求时间性能最好(递增有序)顺序表表示集合A、B,实现:C=AB,C=AB,C=A-BA=AB,A=AB,A=A-B(递增有序)顺序表表示集合A、B,判定A是否B的子集(2011)(15 分)一个长度为L(L1)的升序序列S,处在第 个位置的数称为S 的中位数。例如,若序列S1=(11, 13, 15, 17, 19),则S1 的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2, 4, 6, 8, 20),则S1 和S2 的中位数是11。 现有两个等长升序序列A 和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A 和B 的中位数3. 数据结构设计typedef int elementType;class seqList public: seqList();/初始化空表 int Length();/求表长度(元素个数) int Input (int x);/写入数据 bool getElement(int i,elementType &x);/取表元素 int locate(elementType x);/定位元素位置 int listInsert(int i,elementType x);/在第i个结点前插入值为x的结点 int listDelete(int i);/删除顺序表中第i个元素 int seek(int i);/查找第i个元素 elementType dataMAXLEN;/存放表元素的数组 int listLen;/记录表中的元素个数;4. 算法设计、为基本算法,.自后向前,如果找到比该值小的元素值,则插入当前位置,否则就让当前值往后一一位,再判断下一个值。.定义两个顺序表M,N,依次判断表中个元素,如果datai%2=1,则将该值输入M中,否则则输入N中,M储存奇数结点,N储存偶数结点.创建表L3,如果L1.dataiaL2.dataib,则ib+, 如果L1.dataiaL2.dataib,则ia+ ,否则,就将相同元素加入L3中。.将元素分为两部分,一部分是已经处理元素,和待处理元素。已处理部分返回L中,用下标i表示,待处理第一个元素用j表示,如果L.datai=L.dataj,则处理j下一个元素,j+;如果L.dataiL.dataj,令L.datai+1=L.dataj,j+,i+,直至表尾,令表长度为i+1.扩展实验:.对L1与L2中元素进行判断,将L2中元素插入到L1中对应位置,并保证递增有序性不变。.对于采用C的运算,将符合要求的元素插入到C中,对于不采用C的运算,就对A中元素进行插入与删除操作。.对A中元素按顺序进行判断,如果出现A.dataiaB.dataib,则表示A不为B的子集,如果对A中每个元素进行判断,均可在B中找到,则A为B的子集。.因为两个序列A 和B等长升序,故只需按照递增有序的顺序找到第A.listLen的yuansu即可,可以对A,B元素进行排序,到第A.listLen结束即可输出该值为中位数。5. 运行和测试求顺序表中第i个元素(函数),若不存在,报错。第一组数据:顺序表长度n10,i分别为5,n,0,n+1,n+2 输入顺序表1,2,3,4,5,6,7,8,9 I=5在第i个结点前插入值为x的结点。删除顺序表中第i个元素结点。在一个递增有序的顺序表L中插入一个值为x的元素,并保持其递增有序特性。顺序表元素为 (10,20,30,40,50,60,70,80,90,100),x分别为25,85,110和8将顺序表中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的顺序表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果。第一组数据:顺序表元素为 (1,2,3,4,5,6,7,8,9,10,20,30,40,50,60)求两个递增有序顺序表L1和L2中的公共元素,放入新的顺序表L3中。第一个顺序表元素为 (1,3,6,10,15,16,17,18,19,20)第二个顺序表元素为 (1,2,3,4,5,6,7,8,9,10,18,20,30)删除递增有序顺序表中的重复元素,并统计移动元素次数,要求时间性能最好。第二组数据:顺序表元素为 (1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,9)扩展实验:.递增有序顺序表L1、L2,对2表进行合并,并使得合并后成为一个集合,集合的元素放回L1表中保存(递增有序)顺序表表示集合A、B,实现运算。(递增有序)顺序表表示集合A、B,判定A是否B的子集.6. 总结和心得在程序编写的过程中,由于对程序设计的不全面,导致出现了许多问题,诸如输出的缺少,程序的停止位置,输入内容的错误等等。这给了我不少经验教训,也让我认识到自己的不足,下面总结一下编写过程中的一些问题。1. 在扩展实验一中,插入时输入为元素位置而非元素序号,导致出现错误输出,通过将ia变为ia+1,使其插入在正确位置。2. 在扩展实验二中,在进行A=AB,A=AB,A=A-B操作时直接传地址,导致A内容变化,之后改为传值解决。3. 在重复使用函数时,其内部定义的顺序表在输出第二次的结果时会将上一次的结果也同时输出,造成输出的内容有误。通过在函数调用前将存储结构初始化重置,解决这一问题。4. 初始时设计不合理,导致出现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理咨询群运营方案
- 设计咨询服务招标方案
- 特色小镇-ppp-咨询-方案
- 投标造价咨询工作方案
- 排风安装合同7篇
- 车船使用税委托代征协议书6篇
- 2025-2030互联网法律服务平台商业模式与竞争态势评估报告
- 2025-2030云计算边缘节点部署策略与延迟优化方案研究报告
- 2025-2030二手实木家具回收再利用产业链价值挖掘研究报告
- 2025-2030乳品添加剂行业消费者健康意识与产品需求变化报告
- 2025四川数据集团有限公司第二批员工招聘3人笔试历年参考题库附带答案详解
- 2025年甘肃省天水市供热有限公司招聘12人笔试历年参考题库附带答案详解
- 2025年一卷政治高考真题及答案
- 厨房火灾安全培训教材课件
- DB15∕T 3843-2025 新能源分布式电源并网技术规范
- 《锂电池的制造工艺》课件
- 海上风电场安全监测技术的现状与未来发展趋势
- 足浴前台礼仪培训课件
- 2025年幼儿园中、高级教师职称考试(综合素质)历年参考题库含答案详解(5卷)
- 美术基础 课件全套 第1-5章 美术简介 -中国民间美术
- 2024人教版七年级生物下册期末复习全册考点背诵提纲
评论
0/150
提交评论