计算机与信息学院数据结构实验报告专业班级计算机科学与技术14-1班学生姓名及学号李亚鸣-2014211590课程教学班号0001任课教师胡学钢/张玉红实验指导教师实验地点2014~2015学年第2学期说明实验报告是关于实验教学内容、过程及效果的记录和总结,因此,应注意以下事项和要求:1.每个实验单元在4页的篇幅内完成一份报告。“实验单元”指按照实验指导书规定的实验内容。若篇幅不够,可另附纸。2、各实验的预习部分的内容是进入实验室做实验的必要条件,请按要求做好预习。3.实验报告要求:书写工整规范,语言表达清楚,数据和程序真实。理论联系实际,认真分析实验中出现的问题与现象,总结经验。4.参加实验的每位同学应独立完成实验报告的撰写,其中程序或相关的设计图纸也可以采用打印等方式粘贴到报告中。严禁抄袭或拷贝,否则,一经查实,按作弊论取,并取消理论课考试资格。5.实验报告作为评定实验成绩的依据。实验序号及名称:实验一单链表实验实验时间∶2014年6月6日预习内容一、实验目的和要求∶((1)理解单循环链表及双循环链表的特点。(2)掌握这两种结构的算法设计。(3)运用链数据设计有关算法。(4)理解头结点、头指针概念以及设置头结点的优点表存储二、实验任务∶说明1:本次实验中的链表结构包括单循环链表和双链表两类。说明2:为使实验程序简洁直观,同样是将实验程序中将所需要的函数以调用库函数的形式给出,并假设将库函数放在程序文件"linklist.h"中。同时,假设该库函数文件中定义了链表结构中的指针类型为link,结点类型为node;双链表中结点的类型为dunode,其中有data、next和prior等字段,data的类型为int,而next和prior分别为指示其下一个和前一个结点的指针,类型为dulink(即dunode*)。类似地,定义了部分常用运算,如构建链表、显示链表等。各运算的名称较为直观,并有相应的注释,因而易于理解和实现。读者在上机实验时,需要自己设计出所涉及到的库函数,或者将函数放在实验程序中,以方便实验程序的调试。如时间紧的话,也可到作者的网站下载以供参考。三、实验准备方案,包括以下内容:(硬件类实验:实验原理、实验线路、设计方案等)(软件类实验:所采用的核心方法、框架或流程图及程序清单)实验内容一、实验用仪器、设备:个人计算机VS2013二、实验内容与步骤(过程及数据记录):<1>设计算法依次访问无头结点的单循环链表的各结点。实验测试数据基本要求:第一组数据:链表元素为(1,2,3,4,5,6,7,8,9,10,20,30,40,50,60)第二组数据:链表元素为(10,20,30,40,50,60,70,80,90,100)<2>设计算法以判断一个带头结点的单循环链表是否满足这样的条件:其中每个结点的元素值与其序号的差的绝对值不大于3。若成立,返回TRUE,否则返回FALSE。实验测试数据基本要求:第一组数据:链表元素为(1,2,3,4,5,6,7,8,9,10,12,13,15,16,18)第二组数据:链表元素为(1,2,3,4,5,6,7,8,9,10,11,12,13,15,20,18)<3>利用递增有序的单循环链表表示集合,分别求两个链表表示的集合的交、并集所构成的链表。实验测试数据基本要求:第一组第一个链表元素为(1,3,6,10,15,16,17,18,19,20)第二个链表元素为(1,2,3,4,5,6,7,8,9,10,18,20,30)第二组第一个链表元素为(1,3,6,10,15,16,17,18,19,20)第二个链表元素为(2,4,5,7,8,9,12,22)第三组第一个链表元素为()第二个链表元素为(1,2,3,4,5,6,7,8,9,10)<4>编写算法以构造带头结点的双循环链表。实验测试数据基本要求:第一组数据:链表元素为(1,2,3,4,5,6,7,8,9,10)第二组数据:链表元素为(10,30,40,55,60,70,88,99,100)<5>编写算法以判断一个带头结点的双循环链表是否是对称的,若成立,返回TRUE,否则返回FALSE。实验测试数据基本要求:第一组数据:链表元素为(1,2,3,4,5,4,3,2,1)第二组数据:链表元素为(1,2,3,4,5,5,4,3,2,1)第三组数据:链表元素为(1,2,3,4,5,6,3,2,1)第四组数据:链表元素为(1,2,3,4,5,5,6,4,3,2,1)三、实验结果分析、思考题解答∶四、感想、体会、建议∶实验成绩∶指导教师签名:年月日