- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《数据结构与算法实验》任务书
《数据结构与算法实验》任务书
实验一动态链表的设计与应用
一、实验目的、要求
1、掌握使用VC6.0上机调试线性表的基本方法;
2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等
运算在顺序存储结构
和链式存储结构上的运算。
二、实验内容
1.输入一组学生信息,建立一个单链表。
2.遍历该链表,输出学生信息。
3.查找某特定的学生,查找成功返回1,否则返回0。
4.编写在非递减有序链表中插入一个元素使链表元素仍有序的函
数,并利用该函数建立一个非递减有序单向链表。
5.利用算法4建立两个非递减有序单向链表,然后合并成一个非
递增链表。
*6.采用单向链表实现一元多项式的存储并实现两个多项式相加
并输出结果。
7.编写一个主函数,调试上述算法。
*8.综合训练:利用链表实现一个班级学生信息管理(数据录入、
插入、删除、排序、查找等,并能够实现将数据存储到文件中)
三、实验说明
1.存储定义
#defineMAXSIZE100//表中元素的最大个数
typedefintElemType;//元素类型
typedefstructlist{
ElemTypeelem[MAXSIZE];//静态线性表
intlength;//表的实际长度
}SqList;//顺序表的类型名
2.建立顺序表时可利用随机函数自动产生数据。
四、注意问题
1.插入、删除时元素的移动原因、方向及先后顺序。
2.了解不同的函数形参与实参的传递关系。
一、实验目的、要求
1.掌握栈、队列的思想及其存储实现。
2.掌握栈、队列的常见算法的程序实现。
二、实验内容
1.采用链式存储实现栈的初始化、入栈、出栈操作。
2.采用顺序存储实现栈的初始化、入栈、出栈操作。
3.采用链式存储实现队列的初始化、入队、出队操作。
4.采用顺序存储实现循环队列的初始化、入队、出队操作。
5.在主函数中设计一个简单的菜单,分别测试上述算法。
*6.综合训练:1)利用栈实现表达式求值算法。
2)利用栈实现迷宫求解。
三、实验说明
1.基本要求:实现算法1、3或算法2、4即可。
2.类型定义
顺序栈示例
#defineMAX100//栈的最大值
typedefstruct
{ElemType*base;
inttop;
}SqStack;
顺序队列示例
#defineMAX100//队列的最大长度
typedefstruct
{ElemType*base;
intfront,rear;
}SqQueue;
3.算法6的每个子功能尽可能写成函数形式。
四、注意问题
1.重点理解栈、队列的算法思想,能够根据实际情况选择合适的
存储结构。2.注意算法6的各个函数之间值的传递情况。
3.栈、队列的算法是后续实验的基础(广义表、树、图、查找、
排序等)。
一、实验目的、要求
1.进一步掌握指针变量的含义。
2.掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。
3.掌握用指针类型描述、访问和处理二叉树的运算。
4.掌握二叉树的存储实现。
5.掌握二叉树的遍历思想。
6.掌握二叉树的常见算法的程序实现。
二、实验内容
1.输入字符序列,建立二叉树。
2.中序遍历二叉树:递归算法。
3.中序遍历二叉树:非递归算法。(最好也能实现先序,后序非
递归算法)4.求二叉树的高度。
5.求二叉树的叶子个数。
*6.将二叉链表视为森林的孩子兄弟链表,计算森林中叶子个数。
*7.建立中序线索二叉树,并实现中序遍历。
8.借助队列实现二叉树的层次遍历。
9.在主函数中设计一个简单的菜单,分别调试上述算法。
三、实验说明
1.类型定义//二叉链表存
文档评论(0)