数据结构实验指导书(java版)
更新时间:2024-03-13 15:43:01 阅读量: 综合文库 文档下载
实验一、单链表的基本操作
一、实验目的
1、掌握线性链表的操作特点,即指针是逻辑关系的映像。 2、掌握动态产生单链表的方法。
3、熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。 4、熟练掌握单链表的取元素操作
二、实验内容
1、定义单链表类型并动态创建单链表;
2、实现单链表的取元素操作、插入操作和删除操作; 3、实现输出单链表中各元素值的操作; 4、将单链表中的最小元素移到最前面。
三、实验环境
eclipse环境
四、实验步骤
1、定义单链表节点类;
2、定义单链表类,并实现单链表的创建、插入、删除、取元素操作和将单链表中的最小元素移到最前面的操作;
3、从键盘上依次输入
21、75、30、18、42、56,顺序或逆序创建单链表,
并输出单链表中的各元素值;
5、分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值;
6、删除单链表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值;
7、取单链表中的第5个数据元素和第7个数据元素;
8、将单链表中的最小元素移到最前面,并输出单链表中的各元素以检查操作是否正确实现。
五、问题讨论
1、单链表具有什么优缺点?
2、单链表的定义与顺序表的定义有什么区别? 3、逆序创建单链表有什么好处?
六、实验报告内容
1、实验目的
2、实验内容和具体要求
3、完成情况和实验记录,实验记录为实验过程中遇到的问题及解决方法 4、程序清单
5、所输入的数据及相应的运行结果 6、问题讨论回答 7、实验心得
实验二、二叉树的遍历和二叉查找树
一、实验目的
1、掌握二叉树的特点及其存储方式; 2、掌握二叉树的创建;
3、掌握二叉树前序、中序、后序遍历的基本方法及应用; 4、掌握二叉查找树的特点;
5、掌握二叉查找树查找(包含contain)、插入和删除操作的实现。
二、实验内容
1、用前序方法建立一棵二叉树;
2、实现前序、中序和后序遍历二叉树的操作;
3、实现统计二叉树叶子结点个数或计算二叉树深度的操作; 4、将输入的一组数据逐个插入实现创建二叉查找树; 5、用非递归实现二叉查找树的查找和删除操作。
三、实验环境
eclipse环境
四、实验步骤
1、二叉链表节点类的定义; 2、二叉树类的定义; 3、建立下图所示的二叉树
a
b c d e f
以字符串的形式“根左右”定义一棵二叉树时,写出创建二叉树的操作:
4、编程实现以上二叉树的前序、中序和后序遍历操作,输出遍历序列; 5、完成统计以上二叉树中叶子结点的个数或计算以上二叉树的深度; 6、定义二叉查找树类;实现二叉查找树的查找、插入和删除操作; 7、从键盘上输入六个整数45、24、53、12、37、9构造二叉查找树,输出二叉查找树的中序遍历结果;
8、在二叉查找树上查找37和50,并输出能否查找成功; 9、删除数据元素24和53,输出其中序遍历结果。
五、问题讨论
1、先序、中序、后序遍历二叉树的区别?
2、在先序、中序非递归算法中为什么使用栈?能不能借助其它数据结构来实现?
3、二叉查找树中序遍历结果有什么特点?
4、在二叉查找树中插入一个新结点,总是插入到叶结点下面吗? 5、在任意一棵非空二叉查找树中,删除某结点后又将其插入,则所得二叉查找树与原二叉查找树相同吗?
六、实验报告内容
1、实验目的
2、实验内容和具体要求
3、完成情况和实验记录,实验记录为实验过程中遇到的问题及解决方法 4、程序清单
5、所输入的数据及相应的运行结果 6、问题讨论回答 7、实验心得
实验三、内部排序
一、实验目的
1、理解排序的有关概念和特点。
2、熟练掌握直接插入排序、希尔排序、快速排序、堆排序、归并排序算法的基本思想。
3、关键字序列有序与无序,对于不同的排序方法有不同的影响,通过该实验进一步加深理解。
二、实验内容
输入一组数据,然后用直接插入排序、希尔排序、快速排序、堆排序、归并
排序算法进行排序。
三、实验环境
eclipse环境
四、实验步骤
1、实现直接插入排序、希尔排序、快速排序、堆排序、归并排序算法;要求
输出各种排序算法每一趟排序的结果;
2、从键盘输入8个整数{ 12 , 45 , 21 , 12 , 30 , 2 , 68 , 33 },存放在数组quick[8]中,调用各种排序算法,观察每一趟排序结果次序的变化; 3、如果上述8个整数按照升序输入,即k1={ 2 , 12 , 12 , 21 , 30 , 33 , 45 , 68 },输出各种排序算法每一趟排序的结果,观察关键字次序的变化; 4、如果上述8个整数按照降序输入,即k2={ 68 , 45 , 33 , 30 , 21 , 12 , 12 , 2},输出各种排序算法每一趟排序的结果,观察关键字次序的变化; 5、随机产生3万个数,对其进行排序,观察其结果,并测试各排序算法的执行时间,比较执行效率。
五、问题讨论
1、直接插入排序、希尔排序、快速排序、堆排序、归并排序中哪些是稳定的排序方法,哪些是不稳定的?
2、直接插入排序、希尔排序、快速排序、堆排序、归并排序中哪些排序方
正在阅读:
数据结构实验指导书(java版)03-13
中国精细化工市场调研报告01-19
全市法院系统立案信访经验交流会议欢迎词10-14
第32课时 三角函数的图像和性质(3)10-20
光学薄膜技术课程简介12-15
读《我是阿尔法:论法和人工智能》有感02-23
玉米C 型细胞质雄性不育系C48-2 及其保持系线粒体差异蛋白分析08-17
石化类上市公司低碳经济评价指标及方法研究03-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 数据结构
- 实验
- java
- 二年级数学下册第一单元练习题
- 作业成本法在港口企业的应用研究(中)
- 服务器安全总结
- (浙江专版)2018年高中物理 第11章 机械振动章末过关检测 新人
- 2013-2014学年度第一学期七年级英语期末考试试卷
- 2018版高中语文学业分层测评13雷雨前苏教版选修《现代散文选读》
- 浅谈民族唱法与通俗唱法教学的特点与比较-文档资料
- 新苏科版初中物理九年级下册16.1《磁体与磁场》教学设计7(精品
- C语言毕业课程设计猜数字游戏
- 2019部编本人教版六年级语文上册:第八单元百词无差错竞赛
- 2017年国家公务员考试申论真题及答案(省级)
- 吉林大学材料力学课程设计7.2 - 单缸柴油机曲轴设计 - - 5
- 水电暖通施工方案
- 中国古代文学史复习材料
- 2018-2019年六盘水市水城县阿戛镇鱼塘小学三年级上册英语模拟期
- 人际传播的特点
- 编译原理试卷及参考答案
- 黄亚彬 跆拳道理论考试试题
- 中小企业筹资环境的分析与探讨
- 旅游心理学大纲