数据结构与算法实验报告册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南工程学院
理学院学院
实验报告
(数据结构与算法)
学期:
课程:
专业:
班级:
学号:
姓名:
指导教师:
目录
实验一线性表1(顺序表及单链表的合并) (1)
实验二线性表2(循环链表实现约瑟夫环) (1)
实验三栈和队列的应用(表达式求值和杨辉三角) (1)
实验四赫夫曼编码
实验五最小生成树 (1)
实验六排序算法
实验一线性表1
一、实验学时:2学时
二、实验目的
1.了解线性表的逻辑结构特性是数据元素之间存在着线性关系。在计算机中
表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。
2.熟练掌握这两类存储结构的描述方法以及线性表的基本操作在这两种存储
结构上的实现。
三、实验内容
1. 编写程序,实现顺序表的合并。
2. 编写程序,实现单链表的合并。
四、主要仪器设备及耗材
硬件:计算机一台
软件:VC++6.0,MSDN2003或者以上版本
五、算法设计
1. 顺序表合并的基本思想
程序流程图:
2. 单链表合并的基本思想
程序流程图
六、程序清单
七、实现结果
八、实验体会或对改进实验的建议
实验二线性表2
一、实验学时:2学时
二、实验目的
1.了解双向循环链表的逻辑结构特性,理解与单链表的区别与联系。
2.熟练掌握双向循环链表的存储结构以及基本操作。
三、实验内容
编写程序,采用循环链表实现约瑟夫环。
设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出圈的次序。
四、主要仪器设备及耗材
硬件:计算机一台
软件:VC++6.0,MSDN2003或者以上版本
五、算法设计
约瑟夫环实现的基本思想
程序流程图:
六、程序清单
七、实现结果
八、实验体会或对改进实验的建议
实验三栈和队列的应用
一、实验学时:2学时
二、实验目的
1.掌握栈的存储结构、基本算法,尤其是入栈和出栈操作。
2、理解队列的含义,掌握队列的存储结构以及入队、出队操作。
三、实验内容
1. 编写程序,采用栈的结构实现表达式求值。
2. 编写程序,采用队列的结构实现杨辉三角。
四、主要仪器设备及耗材
硬件:计算机一台
软件:VC++6.0,MSDN2003或者以上版本
五、算法设计
1. 表达式求值的基本思想
程序流程图:
2. 实现杨辉三角的基本思想
程序流程图
六、程序清单
七、实现结果
八、实验体会或对改进实验的建议
实验四赫夫曼编码
一、实验学时:2学时
二、实验目的
1、掌握赫夫曼树和赫夫曼编码的存储表示,实现赫夫曼编码。
2、理解二叉树的存储结构和实现算法。
三、实验内容
在传送电文时,总希望总长极尽可能地短,如果对每个字符设计长度不等的
编码,且让电文中出现次数较多的字符采用尽可能短的编码,则传送电文的总长便可减少。为了不造成多种译法,采用前缀编码,即任一个字符的编码都不是另一个字符的编码的前缀,寻找该前缀编码的过程即为赫夫曼编码的过程。
测试数据:已知某系统在通信联络中只可能出现8种字符,其概率分别为{0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11},试设计赫夫曼编码。
四、主要仪器设备及耗材
硬件:计算机一台
软件:VC++6.0,MSDN2003或者以上版本
五、算法设计
1. 构造赫夫曼树的基本思想
程序流程图:
2. 赫夫曼编码的基本思想
程序流程图:
六、程序清单
七、实现结果
八、实验体会或对改进实验的建议