资源描述:
《华中科技大学数据结构实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实验报告课程名称:数据结构实验专业班级:信息安全学号:姓名:指导教师:报告日期:2016年10月28日计算机科学与技术学院目录黑体小2号加粗居中.间距前后0.5行1基于顺序存储结构的线性表实现11.1问题描述11.2系统设计11.3系统实现11.4实验小结12基于二叉链表的二叉树实现22.1问题描述22.2系统设计22.3系统实现22.4实验小结2指导教师评定意见3附录A基于顺序存储结构线性表实现的源程序4附录B基于二叉链表二叉树实现的源程序5章为宋体小4号加粗,其余宋体小4号,行间距1.5倍,段落前后0行1基于顺序存储结构的线性表实现黑体小2加粗,居中,间距前后0.5行1
2、.1问题描述黑体4号加粗,间距前后0.5行采用顺序表的物理结构,构造一个具有菜单的功能演示系统。其中,在主程序中完成函数调用所需实参值的准备和函数执行结果的显示。定义了线性表的初始化表、销毁表、清空表、判定空表、求表长和获得元素等基本运算对应的函数,并给出适当的操作提示显示,可选择以文件的形式进行存储和加载,即将生成的线性表存入到相应的文件中,也可以从文件中获取线性表进行操作。1.1.1线性表的基本概念线性表是最常用且最简单的一种数据结构,即n个数据元素的有限序列。线性表中元素的个数n定义为线性表的长度,n=0时成为空表。在非空表中的每个数据元素都有一个确定的位置,如a1是第一
3、个数据元素,an是最后一个数据元素,ai是第i个数据元素。线性表的存储结构分为线性存储和链式存储。1.1.2逻辑结构与基本运算线性表的数据逻辑结构定义如下:ADTList{数据对象:D={ai
4、ai∈ElemSet,i=1,2,……,n,n≥0}数据关系:R1={
5、ai-1,ai∈D,i=2,……,n}}依据最小完备性和常用性相结合的原则,以函数形式定义了包括线性表的初始化表、加载表、保存表、销毁表、清空表、判定空表、求表长、获得元素、查找元素、获得前驱、获得后继、插入元素、删除元素、遍历表14个基本运算,要求分别定义函数来实现上述功能,具体功能运算如下:⑴初
6、始化表:函数名称是InitaList(L);初始条件是线性表L不存在已存在;操作结果是构造一个空的线性表。⑵销毁表:函数名称是DestroyList(L);初始条件是线性表L已存在;操作结果是销毁线性表L。⑶清空表:函数名称是ClearList(L);初始条件是线性表L已存在;操作结果是将L重置为空表。⑷判定空表:函数名称是ListEmpty(L);初始条件是线性表L已存在;操作结果是若L为空表则返回TRUE,否则返回FALSE。⑸求表长:函数名称是ListLength(L);初始条件是线性表已存在;操作结果是返回L中数据元素的个数。⑹获得元素:函数名称是GetElem(L,i
7、,e);初始条件是线性表已存在,1≤i≤ListLength(L);操作结果是用e返回L中第i个数据元素的值。⑺查找元素:函数名称是LocateElem(L,e,compare());初始条件是线性表已存在;操作结果是返回L中第1个与e满足关系compare()关系的数据元素的位序,若这样的数据元素不存在,则返回值为0。⑻获得前驱:函数名称是PriorElem(L,cur_e,pre_e);初始条件是线性表L已存在;操作结果是若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。⑼获得后继:函数名称是NextElem(L,cur_
8、e,next_e);初始条件是线性表L已存在;操作结果是若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。⑽插入元素:函数名称是ListInsert(L,i,e);初始条件是线性表L已存在且非空,1≤i≤ListLength(L)+1;操作结果是在L的第i个位置之前插入新的数据元素e。⑾删除元素:函数名称是ListDelete(L,i,e);初始条件是线性表L已存在且非空,1≤i≤ListLength(L);操作结果:删除L的第i个数据元素,用e返回其值。⑿遍历表:函数名称是ListTraverse(L,visit())
9、,初始条件是线性表L已存在;操作结果是依次对L的每个数据元素调用函数visit()。1.1.3演示系统与数据文件要求构造一个具有菜单的功能演示系统。其中,在主程序中完成函数调用所需实参值的准备和函数执行结果的显示,并给出适当的操作提示显示。附录A提供了简易菜单的框架。演示系统可选择实现线性表的文件形式保存。其中,①需要设计文件数据记录格式,以高效保存线性表数据逻辑结构(D,{R})的完整信息;②需要设计线性表文件保存和加载操作合理模式。附录B提供了文件存取的方法。演示系统可选择实现多个线性表