华中科技大学计算机学院数据结构实验报告.pdf
《华中科技大学计算机学院数据结构实验报告.pdf》由会员分享,可在线阅读,更多相关《华中科技大学计算机学院数据结构实验报告.pdf(104页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-课程实验报告 课程名称:数 据 结 构 实 验 专业班级:计算机 学 号:姓 名:指导教师:报告日期:年月日 计算机科学与技术学院-目录 基于顺序存储结构实现线性表的基本运算错误!未指定书签。实验目的错误!未指定书签。线性表演示系统设计错误!未指定书签。系统总体设计错误!未指定书签。有关常量和类型定义错误!未指定书签。算法设计错误!未指定书签。线性表演示系统实现与测试错误!未指定书签。系统实现错误!未指定书签。系统测试错误!未指定书签。实验小结错误!未指定书签。基于链式实现线性表的基本运算错误!未指定书签。问题描述错误!未指定书签。线性表演示系统设计错误!未指定书签。系统总体设计错误!未指定
2、书签。有关常量和类型定义错误!未指定书签。算法设计错误!未指定书签。线性表演示系统实现与测试错误!未指定书签。系统实现错误!未指定书签。系统测试错误!未指定书签。实验小结错误!未指定书签。基于顺序存储结构实现栈的基本运算错误!未指定书签。实验目的错误!未指定书签。栈演示系统设计错误!未指定书签。系统总体设计错误!未指定书签。算法实现错误!未指定书签。栈演示系统实现与测试错误!未指定书签。程序实现错误!未指定书签。-系统测试错误!未指定书签。实验小结错误!未指定书签。基于循环队列存储结构实现队列的基本运算错误!未指定书签。问题描述错误!未指定书签。系统总体设计错误!未指定书签。有关常量和类型定义
3、错误!未指定书签。算法设计错误!未指定书签。队列演示系统实现与测试错误!未指定书签。系统实现错误!未指定书签。系统测试错误!未指定书签。实验小结错误!未指定书签。基于二叉链表实现二叉树的基本运算错误!未指定书签。实验目的错误!未指定书签。系统总体设计错误!未指定书签。有关常量和类型定义错误!未指定书签。算法设计错误!未指定书签。二叉树演示系统实现与测试错误!未指定书签。系统实现错误!未指定书签。系统测试错误!未指定书签。实验小结错误!未指定书签。基于邻接表实现图的基本和常见运算错误!未指定书签。实验目的错误!未指定书签。系统总体设计错误!未指定书签。有关常量和类型定义错误!未指定书签。算法设计
4、错误!未指定书签。图演示系统实现与测试错误!未指定书签。系统实现错误!未指定书签。系统测试错误!未指定书签。实验小结错误!未指定书签。参考文献错误!未指定书签。-基于顺序存储结构实现线性表的基本运算 实验目的 通过实验达到:()加深对线性表的概念、基本运算的理解;()熟练掌握线性表的逻辑结构与物理结构的关系;()物理结构采用顺序表,熟练掌握线性表的基本运算的实现。线性表演示系统设计 系统总体设计 本系统提供一个顺序存储的线性表。该演示系统提供的操作有:表的初始化、销毁、清空、判空,求表长、获取数据元素、查找数据元素、获得前驱、获得后继、创建线性表、插入数据元素、删除数据元素、表的遍历。在程序中
5、实现消息处理,包括数据的输入和输出,程序的退出。有关常量和类型定义 数据元素类型的定义:;有关常量的定义:算法设计()()操作结果:构造一个空的线性表。()()初始条件:线性表已存在。操作结果:销毁线性表。-()()初始条件:线性表已存在。操作结果:将重置为空表。()()初始条件:线性表已存在。操作结果:若为空表,则返回,否则返回。()()初始条件:线性表已存在。操作结果:返回中数据元素的个数。()(,)初始条件:线性表已存在,()。操作结果:用返回中第个数据元素的值。()(,,())初始条件:线性表已存在。操作结果:返回中第个与满足关系()关系的数据元素的 位序,若这样的数据元素不存在,则返
6、回值为。()(,)初始条件:线性表已存在。操作结果:若是的数据元素,且不是第一个,则用返回它的前驱,否则操作失败,无定义。()(,)初始条件:线性表已存在。操作结果:若是的数据元素,且不是最后一个,则用返回它 的后继,否则操作失败,无定义。()()初始条件:线性表已存在且非空,()。操作结果:在的第个位置之前插入新的数据元素,的长度加()()初始条件:线性表已存在且非空,()。操作结果:删除的第个数据元素,用返回其值,的长度减.()(,())初始条件:线性表已存在。操作结果:依次对的每个数据元素调用函数()。一旦调用失败,则操 作失败。线性表演示系统实现与测试-系统实现 编程环境为 ,程序清单
7、如下:*;数据元素类型定义 *顺序表(顺序结构)的定义 *;*();(*);();();();(,);(,);简化过-(,*);(*);(*);(*,*);();简化过 ;*();,;()();();();();(.);(.);(.);(.);(.);(.);(.);();(请选择你的操作:);(,);():(功能待实现!);()(线性表创建成功!);(线性表创建失败!);()();:-(功能待实现!);()(线性表销毁成功!);(线性表销毁失败!);()();:(功能待实现!);()(线性表清空成功!);(线性表清空失败!);()();:(功能待实现!);()(线性表已清空!);(线性表未清
8、空!);()();:(功能待实现!);(线性表长度为,();()();:(功能待实现!);(请输入要查询的序数:);(,);(,)(表中第个数据为,);(查询失败!);()();:(功能待实现!);(请输入要查询的数据:);(,);-(,);()(中第一个与查询数据相等的数据的位序为,);(这样的数据元素不存在!);()();:(请输入要查询的元素:);(,);(,)(前驱为,);(无此前驱);()();:(请输入要查询的元素:);(,);(,)(后驱为,);(无此后驱);()();:(请输入:);(,);(请输入:);(,);(,)(线性表插入成功);(线性表插入失败);()();:-(请输
9、入要删除的元素的序列:);(,);(,)(元素删除成功);(元素删除失败);()();:(功能待实现!);()(线性表是空表!);()();:;(欢迎下次再使用本系统!);()*()(*)(*();()();(*)();-();()();判断表空 ();(,)*();(,);(*);-();(,*);(;)()*();(,*);(;);();()(*)(,()*();();();();)*()*;*;(*,*)*,*;();();();(;()-;();()(,);();系统测试 表线性表算法测试用例表 测试用例 程序输入 理论结果 运行结果 用例 线性表创建成功 用例 线性表销毁成功 用例
10、线性表清空成功 用例 线性表已清空 用例 线性表长度为 用例 表中第个数据为 用例 表中第一个与查询数据相等的数据的位序为 用例 前驱为 用例 后驱为 用例 线性表插入成功 用例 元素删除成功 -用例 实验小结 这是第一次数据结构的实验,实验完成期间恰逢离散和复变的考试,复习与实验一起进行让我压力不小。好在老师有针对性的在课堂上指点了很多关键点,让我的实验顺利进行。此次实验加深了我对*和的理解,代码中仍有不尽如人意的地方,相信以后会做的越来越好。-基于链式实现线性表的基本运算 问题描述 通过实验达到:()加深对线性表的概念、基本运算的理解;()熟练掌握线性表的逻辑结构与物理结构的关系;()物理
11、结构采用带表头结点的单链表,熟练掌握线性表基本运算的实现。线性表演示系统设计 系统总体设计 本系统提供一个链式存储的线性表。该演示系统提供的操作有:表的初始化、销毁、清空、判空,求表长、获取数据元素、查找数据元素、获得前驱、获得后继、创建线性表、插入数据元素、删除数据元素、表的遍历。在程序中实现消息处理,包括数据的输入和输出,程序的退出。有关常量和类型定义 数据元素类型的定义:;有关常量的定义:算法设计()()操作结果:构造一个空的单链表。()()初始条件:单链表已存在。操作结果:销毁单链表。-()()初始条件:单链表已存在。操作结果:将重置为空单链表。()()初始条件:单链表已存在。操作结果
12、:若为空单链表,则返回,否则返回.()()初始条件:单链表已存在。操作结果:返回中数据元素的个数。()(,)初始条件:单链表已存在,()。操作结果:用返回中第个结点的数据元素值。()(,,())初始条件:单链表已存在。操作结果:返回中第个与满足关系()的数据元素结点的指 针,若这样的数据元素不存在,则返回值为。()(,)初始条件:单链表已存在。操作结果:若是的数据元素,且不是第一个,则用返回它的 前驱,否则操作失败,无定义。()(,)初始条件:单链表已存在。操作结果:若是的数据元素,且不是最后一个,则用返回它 的后继,否则操作失败,无定义。()()初始条件:单链表已存在且非空,()。操作结果:
13、在的第个结点之前插入新数据元素的结点。()()初始条件:单链表已存在且非空,()。操作结果:删除第个数据元素的结点,用返回其结点数据元素的值。()(,())初始条件:单链表已存在。操作结果:依次对的每个数据元素调用函数()。一旦调用失败,则操 作失败。线性表演示系统实现与测试-系统实现 编程环境为 ,程序清单如下:*;数据元素类型定义 *顺序表(顺序结构)的定义 ;*;,*;()()();-;()();()();();();();()();()();();();-()();();(,*)();();(*);(,)();(,(*)(,)();-;()(*)(,);(,*)();();,;();(
14、)*;(,*)-();();(!();()*;(,)();()();();();(,*)-()();,;(;*;();(,)(对第个元素调用函数:元素值为,);(,(*)(,)();(对所有元素调用函数);()依次对每个元素调用函数 (*)(,);-;();*(),;()();();();();(.);(.);(.);(.);(.);(.);(.);();(请选择你的操作:);(,);():(功能待实现!);()(线性表创建成功!);(线性表创建失败!);()();:(功能待实现!);()(线性表销毁成功!);-(线性表销毁失败!);()();:(功能待实现!);()(线性表清空成功!);(线
15、性表清空失败!);()();:(功能待实现!);()(线性表已清空!);(线性表未清空!);()();:(功能待实现!);(线性表长度为,();()();:(功能待实现!);(请输入要查询的序数:);(,);(,)(表中第个数据为,);(查询失败!);()();:(功能待实现!);(请输入要查询的数据:);(,);(,);()-(中第一个与查询数据相等的数据的位序为,);(这样的数据元素不存在!);()();:(请输入要查询的元素:);(,);(,)(前驱为,);(无此前驱);()();:(请输入要查询的元素:);(,);(,)(后驱为,);(无此后驱);()();:(请输入:);(,);(请
16、输入:);(,);(,)(线性表插入成功);(线性表插入失败);()();:(请输入要删除的元素的序列:);(,);-(,)(元素删除成功);(元素删除失败);()();:(功能待实现!);(,)(线性表是空表!);()();:;(欢迎下次再使用本系统!);系统测试 表线性表算法测试用例表 测试用例 程序输入 理论结果 运行结果 用例 线性表创建成功 用例 线性表销毁成功 用例 线性表清空成功 用例 线性表已清空 用例 线性表长度为 用例 表中第个数据为 用例 表中第一个与查询数据相等的数据的位序为 用例 前驱为 -用例 后驱为 用例 线性表插入成功 用例 元素删除成功 用例 实验小结 这是第
17、二次数据结构的实验,此次试验遇到了的问题,经过网上的查询,我复习了和函数的有关知识,解决了我的问题。变量进入函数时,虽然有符号,但是实际引用的还是他本身,并不是他的地址。-基于顺序存储结构实现栈的基本运算 实验目的 通过实验达到:()加深对栈的概念、基本运算的理解;()熟练掌握栈的逻辑结构与物理结构的关系;()熟练掌握顺序栈的基本运算的实现;()通过栈的应用体会其用途。栈演示系统设计 系统总体设计 本系统提供一个顺序存储的栈。该演示系统提供的操作有:初始化、销毁、清空、判空,求长、获取栈顶元素、替换栈顶元素、栈的遍历。在程序中实现消息处理,包括数据的输入和输出,程序的退出。算法实现()()操作
18、结果:构造一个空栈。()()初始条件:栈存在。操作结果:栈被销毁,不在存在。()()初始条件:栈存在。操作结果:将清成空栈。()()初始条件:栈存在。操作结果:若为空栈,则返回值为;否则为。()()初始条件:栈存在。操作结果:返回栈的元素个数。()()初始条件:栈存在并且非空。操作结果:将栈顶元素拷贝到。()()初始条件:栈存在。操作结果:插入元素为新的栈顶元素。()()初始条件:栈存在并且非空。操作结果:删除栈的栈顶元素,并送入。()()初始条件:栈存在。-操作结果:从栈底到栈顶依次对栈中的元素使用函数进行访问。栈演示系统实现与测试 程序实现 *;数据元素类型定义 *顺序表(顺序结构)的定义
19、 ;*()*;(*)();()(空间不足);-;(*)()();(*)*;(*)();(*);(*)-()栈空 ;(*)()栈满不能入栈 ;(*,);(*);()(,);();-;();*,*;();();(欢迎进入计算的世界);(请输入你的算式:(如));();();()(*)(,);(,);();();*()*();()();(计算结果是:,);-()();()*;()();();();(.);(.);(.);(.);(.);(.);();(请选择你的操作:);(,);():();(初始化完成);()();:();(销毁成功);()();:();(清空成功);()();-;:()(栈是空的
20、);(栈不是空的);()();:(栈中共有个元素();()();:(栈顶的元素是,(,);()();:(请输入要入栈的元素:);(,);(,);(入栈成功!);()();:(请输入要替换栈顶的元素:);(,);(,);(替换成功!);()();:-();()();:;:();(欢迎下次再使用本系统!);()系统测试 表测试用例表 测试用例 程序输入 理论结果 运行结果 用例 初始化完成 用例 销毁成功 用例 清空成功 用例 栈不是空的 用例 栈中共有个元素 用例 栈顶的元素是 用例 入栈成功 用例 替换成功 用例 用例 算式:*结果:-实验小结 本次实验深入理解了栈的构成和意义,我对计算机科学
21、领域研究的前辈感到深深的钦佩。栈可以解决许许多多的问题,例如本次实验中对表达式求值的问题,利用栈把数字元素和计算符号分别存放到栈里,再根据需要弹出计算。栈的问题还是以后许多问题的基础,我觉得这次实验又收获了很多。系统直接使用了上次使用的系统,很方便。-基于循环队列存储结构实现队列的基本运算 问题描述 通过实验达到:()加深对队列的概念、基本运算的理解;()熟练掌握队列的逻辑结构与物理结构的关系;()熟练掌握循环队列的算法实现。队列演示系统设计 系统总体设计 本系统提供一个循环队列。该演示系统提供的操作有:队列的初始化、销毁、清空、判空,求队列长、读取首元素、插入尾元素、删除首元素、队列元素遍历
22、。在程序中实现消息处理,包括数据的输入和输出,程序的退出。有关常量和类型定义 数据元素类型的定义:;有关常量的定义:算法设计()()操作结果:构造一个空队列。()()初始条件:队列存在。操作结果:将队列销毁,不再存在。()()初始条件:队列存在。操作结果:将队列清为空队列。-()()初始条件:队列存在。操作结果:若队列为空队列,返回,否则返回。()()初始条件:队列存在。操作结果:返回队列元素个数。()()初始条件:队列存在并且非空。操作结果:读取队列的首元素,送返回其值。()()初始条件:队列存在。操作结果:插入元素到队列中作为尾元素。()()初始条件:队列存在并且非空。操作结果:删除队列的
23、首元素,并且用返回其值。()()初始条件:队列存在并且非空。操作结果:从队首到队尾依次对队列中的元素使用函数进行访问。队列演示系统实现与测试 系统实现 编程环境为 ,程序清单如下:*;-;*;,*;(*)(*)(*();()(空间不足);(*)()();(*)()-(队列不存在!);(清空成功!);(*)();(*)()(队列不存在!);(*)()(队列是空的!);-;(*);(*,)()(队列是空的!);()(,);(*)()(队列是空的!);-;()();();(),*;()();();();(.);(.);(.);(.);(.);();(请选择你的操作:);(,);():()(初始化完成
24、);(初始化失败,空间不足);-()();:();(销毁成功);()();:();()();:()(队列不存在);()();()(队列是空的);(队列不是空的);()();:()(队列不存在);()();-(队列中共有个元素();()();:()(队列不存在);()();(,)(队列顶的元素是);(失败!);()();:()(队列不存在);()();()(队列满了);()();(请输入要放入队列尾的元素:);(,);(,);(放入成功!);()();:()-(队列不存在);()();(,)(已删除队列的首元素,其值是,);(失败!);()();:()(队列不存在);()();();()();:
25、;(欢迎下次再使用本系统!);()系统测试 表测试用例表 测试用例 程序输入 理论结果 运行结果 用例 初始化完成 用例 销毁成功 用例 清空成功 -用例 队列是空的 用例 队列中共有个元素 用例 队列顶的元素是 用例 放入成功 用例 已删除队列的首元素,其值是 用例 实验小结 这次实验进展十分顺利。做实验之前认真学习了课本,并从维基百科上查阅学习了相关词条,因此代码编写过程中没有出现什么大问题。一开始定义指针变量的时候没有赋值,导致了程序报错,另外我定义函数时没有声明,出现了错误。现在已经经过改正,程序比较完善。-基于二叉链表实现二叉树的基本运算 实验目的 通过实验达到:()加深对二叉树的概
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 计算机 学院 数据结构 实验 报告
限制150内