资源描述:
《《数据结构》实验指导书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据结构》实验指导书愚昧从来没有给人带来幸福;幸福的根源在于知识。——左拉《数据结构》实验指导书肇庆学院计算机科学系编前言 数据结构是信息与计算科学专业中一门重要的专业基础课程。当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打下了厚实的知识基础,同时也提供了必要的技能训练。因此,数据结构课程在计算机应用专业中具有举足轻重的作用。 本书是针对《数据结构》教程的上机实验指导书,内容包括线性表、栈和队列、串、数组和稀疏矩
2、阵、递归、树状结构、图、查找、排序等。书后附录中给出了学生应提交的实验报告的格式。 本上机实验指导书旨在通过指导学生上机实践,对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。 本实验指导书的内容都是基于C语言的,因此,要求学生对C语言要有一定的了解。建议使用TurboC2.0或VC++作为实验平台。根据学生的实际情况,本上机实验指导书的内容大多数为基本算法的综合验证,也包括部分算法设计。本上机实验指导书共有9个实验内容,每个实验约为4课时。 由于作者对《数据结构》知
3、识所知有限,书中难免存在错误,恳请读者及时加以指正,以便改进。如有对于本书的意见和建议,请与编者联系,E-mail:lg@zqu.edu.cn。衷心感谢! 编者 目录前言实验一顺序表1实验二单链表3实验三栈和队列5实验四串7实验五数组8实验六树和二叉树10实验七图12实验八查找14实验九排序16参考资料18附录1:肇庆学院计算机系实验报告格式19附录2:上机实习注意事项21实验一顺序表一、预备知识 1.顺序表的存储结构形式及其描述 2.顺序表的建立、查找、插入和删除操作二、实验目的 1.掌握顺序表的存储结构形式及其描述 2.掌握顺
4、序表的建立、查找、插入和删除操作三、实验内容 1.编写函数,输入一组整型元素序列,建立一个顺序表。 2.编写函数,实现对该顺序表的遍历。 3.编写函数,在顺序表中进行顺序查找某一元素,查找成功则返回其存储位置i,否则返回错误信息。 4.编写函数,实现在顺序表的第i个位置上插入一个元素x的算法。 5.编写函数,实现删除顺序表中第i个元素的算法。 6.编写利用有序表插入算法建立一个有序表的函数。 7.编写函数,利用以上算法,建立两个非递减有序表,并把它们合并成一个非递减有序表。 8.编写函数,实现输入一个元素x,把它插入到有序表中
5、,使顺序表依然有序。 9.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。四、实验说明 1.顺序表的存储定义 #defineMAXSIZE100//顺序表的最大元素个数 typedefintElemType;//顺序表的元素类型 typedefstructlist {ElemTypeelem[MAXSIZE];//静态线性表 intlength;//顺序表的实际长度 }SqList;//顺序表的类型名五、注意问题 1.插入、删除时元素的移动原因、方向及先后顺序。 2.理解不同的函数形
6、参与实参的传递关系。六、实验报告 根据实验情况和结果撰写并递交实验报告。实验二单链表一、预备知识 1.动态链表的存储结构形式及其描述 2.单链表的建立、查找、插入和删除操作二、实验目的 1.掌握单链表的存储结构形式及其描述 2.掌握单链表的建立、查找、插入和删除操作三、实验内容 1.编写函数,实现随机产生或键盘输入一组元素,建立一个带头结点的单链表(无序)。 2.编写函数,实现遍历单链表。 3.编写函数,实现把单向链表中元素逆置(不允许申请新的结点空间)。愚昧从来没有给人带来幸福;幸福的根源在于知识。——左拉 4.编写函数,
7、建立一个非递减有序单链表。 5.编写函数,利用以上算法,建立两个非递减有序单链表,然后合并成一个非递减链表。 6.编写函数,在非递减有序单链表中插入一个元素使链表仍然有序。 7.编写函数,实现在非递减有序链表中删除值为x的结点。 8.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。四、实验说明 1.单链表的类型定义 #include typedefintElemType;//单链表结点类型 typedefstructLNode {ElemTypedata; struct
8、LNode*next; }LNode,*LinkList; 2.为了算法实现简单,最好采用带头结点的单链表。五、注意问题 1.重点理解链式存储的特点及指针