




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法实验任务书实验一动态链表的设计与应用一、实验目的、要求1、掌握使用VC 6.0上机调试线性表的基本方法;2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链式存储结构上的运算。二、实验内容1.输入一组学生信息,建立一个单链表。2.遍历该链表,输出学生信息。3.查找某特定的学生,查找成功返回1,否则返回0。4.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。5.利用算法4建立两个非递减有序单向链表,然后合并成一个非递增链表。*6.采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。7.编写一个
2、主函数,调试上述算法。*8.综合训练:利用链表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等,并能够实现将数据存储到文件中三、实验说明1.存储定义#define MAXSIZE 100 /表中元素的最大个数typedef int ElemType;/元素类型typedef struct listElemType elemMAXSIZE;/静态线性表int length; /表的实际长度SqList;/顺序表的类型名2.建立顺序表时可利用随机函数自动产生数据。四、注意问题1.插入、删除时元素的移动原因、方向及先后顺序。2.了解不同的函数形参与实参的传递关系。一、实验目的、要求1.掌
3、握栈、队列的思想及其存储实现。2.掌握栈、队列的常见算法的程序实现。二、实验内容1.采用链式存储实现栈的初始化、入栈、出栈操作。2.采用顺序存储实现栈的初始化、入栈、出栈操作。3.采用链式存储实现队列的初始化、入队、出队操作。4.采用顺序存储实现循环队列的初始化、入队、出队操作。5.在主函数中设计一个简单的菜单,分别测试上述算法。*6.综合训练:1利用栈实现表达式求值算法。2利用栈实现迷宫求解。三、实验说明1.基本要求:实现算法1、3或算法2、4即可。2.类型定义顺序栈示例#define MAX 100 /栈的最大值typedef structElemType *base;int top;Sq
4、Stack;顺序队列示例#define MAX 100 /队列的最大长度typedef structElemType *base;int front,rear;SqQueue;3.算法6的每个子功能尽可能写成函数形式。四、注意问题1.重点理解栈、队列的算法思想,能够根据实际情况选择合适的存储结构。2.注意算法6的各个函数之间值的传递情况。3.栈、队列的算法是后续实验的基础(广义表、树、图、查找、排序等。一、实验目的、要求1.进一步掌握指针变量的含义。2.掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。3.掌握用指针类型描述、访问和处理二叉树的运算。4.掌握二叉树的存储实现。5.掌握二叉
5、树的遍历思想。6.掌握二叉树的常见算法的程序实现。二、实验内容1.输入字符序列,建立二叉树。2.中序遍历二叉树:递归算法。3.中序遍历二叉树:非递归算法。(最好也能实现先序,后序非递归算法4.求二叉树的高度 。5.求二叉树的叶子个数。*6.将二叉链表视为森林的孩子兄弟链表,计算森林中叶子个数。*7.建立中序线索二叉树,并实现中序遍历。8.借助队列实现二叉树的层次遍历。9.在主函数中设计一个简单的菜单,分别调试上述算法。三、实验说明1.类型定义 /二叉链表存储#define ElemType char/元素类型typedef struct BiTNodeElemType data;struct
6、BiTNode *lchild,*rchild;BiTNode,*BiTree;2.元素类型可以根据实际情况选取。四、注意问题1.注意理解递归算法的执行步骤。2.注意字符类型数据在输入时的处理。3.重点理解如何利用栈结构实现非递归算法。实验四赫夫曼编码与压缩一、实验目的、要求熟练掌握二叉树应用(Huffman编码的基本算法实现二、实验内容1. 统计字符串中字符的种类以及各类字符的个数的函数2. 实现构造Huffman树的函数3. 实现Huffman编码的函数4. 建立正文的编码文件的函数5.代码文件的译码函数6.在主函数中设计一个简单的菜单,分别调试上述算法。7. 综合训练:输入一段文本, 统
7、计其中字符出现频率, 设计实现相应的Huffman树和Huffman码, 并完成对该段文本的编码与译码。三、实验说明typedef struct int weight; /权值int lchild , rchild , parent; /左右孩子及双亲指针HTNode; /树中结点类型typedef HTNode HuffmanTreem+1; /0号单元不用实验五最短路径算法的实现与应用一、实验目的、要求1.掌握图的存储思想及其存储实现。2.掌握图的深度、广度优先遍历算法思想及其程序实现。3.掌握图的常见应用算法的思想及其程序实现。二、实验内容1.键盘输入数据,建立一个有向图的邻接表。2.输
8、出该邻接表。3.以有向图的邻接表为基础实现输出它的拓扑排序序列。4.采用邻接表存储实现无向图的深度优先非递归遍历。5.采用邻接表存储实现无向图的广度优先遍历。6.采用邻接矩阵存储实现无向图的最小生成树的PRIM算法。7.在主函数中设计一个简单的菜单,分别调试上述算法。8.综合训练:以全国主要城市为图的顶点, 铁路连接为图的边, 距离作为加权, 设计完成一个最短路径自动查找系统. 输入为出发城市和目标城市, 输出为最短路径和距离。进阶:加入中国地图作为背景,出发城市和目标城市采用鼠标点击输入。三、实验说明1.类型定义(邻接表存储#define MAX_VERTEX_NUM 8 /顶点最大个数ty
9、pedef struct ArcNodeint adjvex;struct ArcNode *nextarc;int weight; /边的权ArcNode; /表结点#define VertexType int /顶点元素类型typedef struct VNodeint degree,indegree;/顶点的度,入度VertexType data;ArcNode *firstarc;VNode/*头结点*/,AdjListMAX_VERTEX_NUM;typedef structAdjList vertices;int vexnum,arcnum;/顶点的实际数,边的实际数ALGraph
10、;2.上述类型定义可以根据实际情况适当调整。实验六 内部排序算法的实现与比较 一、实验目的、要求 掌握常见的排序算法的思想及其适用条件。 掌握常见的排序算法的程序实现。 二、实验内容 输入一组关键字序列分别实现下列排序: 1.实现简单选择排序、直接插入排序和冒泡排序。 2.实现希尔排序算法。 3.实现快速排序算法。 4.实现堆排序算法。 5.快速排序的非递归算法。 *6.实现折半插入排序。 *7.采用链式存储实现简单选择排序、直接插入排序和冒泡排序。 8.在主函数中设计一个简单的菜单,分别测试上述算法。 9综合训练:采用几组不同数据测试各个排序算法的性能(比较次数和移动次数) 。 三、实验说明
11、 1类型定义 #define MAXSIZE 100 /*参加排序元素的最大个数*/ typedef struct list int key; RedType; typedef struct RedType rMAXSIZE+1; int length; /*参加排序元素的实际个数*/ SqList; 2算法可以借助栈实现。 四、注意问题 1在 RedType 中增加一个数据项验证各种排序算法的稳定性。 2注意理解各种算法的思想、了解算法的适用情况及时间复杂度,能够根据实际情况选 择合适的排序方法。 6 实验七 一、实验目的、要求 查找算法的实现 1掌握折半查找算法的思想及程序实现。 2掌握二
12、叉排序树、B 树的查找、插入、删除、建立算法的思想及程序实现。 3掌握散列存储结构的思想,实现不同冲突处理方法的散列表的查找、建立。 二、实验内容 1利用实验一建立有序表,采用折半查找实现某一已知的关键字的查找。 2随机产生一组关键字,利用二叉排序树的插入算法建立二叉排序树,然后删除某一 指定关键字元素。 3建立 B 树并实现删除某一指定关键字元素。 4 已知散列函数为 H(key=key%p 为自定的常数) 冲突处理方法分别为线性探测法、 (p , 外拉链法实现散列表的建立(利用插入算法实现) 。 三、实验说明 1存储定义(散列表的外拉链法) #define n 9 typedef struct node int key; struct node *next; NODE; N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 别墅清包工合同范本
- 床帘安装合同范本
- 上海 货车 租赁合同范本
- 淘宝店供货合同协议
- 第三方造价咨询合同协议
- 灭火器维修合同和协议
- 租运土方车辆合同协议
- 精装房装修劳务合同协议
- 移迁房合同协议
- 管理人员入股合同协议
- 国家金融监督管理总局所属事业单位招聘真题2024
- 2024年全国高中数学联赛(浙江预赛)试题含参考答案
- 2025年甘肃省公路发展集团限公司招聘70人历年高频重点模拟试卷提升(共500题附带答案详解)
- 人教PEP版(2024)三年级下册英语Unit5 Old toys单元整体教学设计(共6课时)
- 知识产权投资从理论到实践的转化
- 《2025年公路工程集料试验规程》知识培训
- 客户生命周期价值预测-第1篇-深度研究
- 文化转型时代的文化基因与共生教育选择
- 2025年四川航空股份有限公司招聘笔试参考题库含答案解析
- 河北省保定市重点中学2025届高考英语一模试卷含解析
- 《便携式挥发性有机物检测仪 (PID)技术要求及监测规范》
评论
0/150
提交评论