1数据结构实验指导书.docx
《1数据结构实验指导书.docx》由会员分享,可在线阅读,更多相关《1数据结构实验指导书.docx(11页珍藏版)》请在冰豆网上搜索。
1数据结构实验指导书
《数据结构》
实验指导书
崔婀娜编
沈阳大学信息工程学院
目录
实验一:
C语言运行环境、算法设计1
实验二:
顺序表的基本操作2
实验三:
线性链表的基本操作3
实验四:
顺序栈的基本操作4
实验五:
队列的基本操作5
实验六:
串的基本操作6
实验七:
数组和矩阵7
实验八:
二叉树的基本操作8
实验九:
查找9
实验十:
排序10
课程编号:
11241511课程类别:
基础必修课
适用层次:
本科
适用专业:
计算机科学与技术
课程总学时:
64适用学期:
第3学期
实验学时:
20开设实验项目数:
10
撰写人:
崔婀娜审核人:
刘天惠教学院长:
范立南
实验一:
C语言运行环境、算法设计
一、实验目的与要求
1.熟悉TC环境的组成及使用方法。
2.了解C语言程序从编辑、编译、连接到运行并得到运行结果的过程。
3.学习把算法改成C程序的方法。
二、实验类型
验证型
三、实验原理及说明
算法是指为了完成某一特定功能的指令序列,它阐述程序设计的总体思路。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1.在开始实验之前,先建立自己的工作目录,可用自己的班级加学号或姓名命名。
2.熟悉TC或VC++环境的组成及使用。
3.了解算法设计。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
编写自大到小依次输出顺序读入的三个数X、Y和Z的值的程序,并在TC或VC++环境下调试通过,最后写出程序的运行结果。
要求:
包括主函数,排序函数。
在主程序中任意输入三个数,调用排序函数进行排序,在输出函数中输出排序结果。
六、注意事项
注意算法在C语言编程环境中无法直接运行,需要改成C程序才能正确执行。
七、预习与思考题
1.程序和算法的区别。
实验二:
顺序表的基本操作
一、实验目的与要求
1.理解和掌握顺序表的结构类型定义方法。
2.掌握建立顺序表的基本方法。
3.掌握显示顺序表元素的基本方法。
二、实验类型
设计型
三、实验原理及说明
1.顺序表即线性表的顺序存储结构,是指用一组地址连续的存储空间来依次存放逻辑位置相邻的元素的存储结构。
在线性表的顺序存储结构上插入、删除元素需要移动原有元素。
2.线性表的顺序存储结构是随机存储结构,适合进行查找运算。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1、设计程序建立一个顺序表,要求从键盘输入整数,并完成添加插入和删除元素功能,并将该顺序表的元素从屏幕显示出来。
六、注意事项
注意线性表顺序存储结构的特点。
七、预习与思考题
1.线性表的顺序存储结构适合进行哪些运算?
实验三:
线性链表的基本操作
一、实验目的与要求
1.掌握单链表的类型定义和结点生成的方法。
2.掌握利用头插法和尾插法建立单链表、显示单链表元素等的算法。
二、实验类型
设计型
三、实验原理及说明
1.链表即线性表的链式存储结构,是指用一组地址不一定连续的存储空间来存放数据元素,数据元素之间的逻辑关系需要指针来存储。
2.在线性表的链式存储结构上插入、删除元素不需要移动原有元素。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1、设计程序创建一个单向链表,并输出链表中数据。
要求:
从键盘输入数据元素个数和值,并在此基础上实现单向链表插入、删除元素的功能。
六、注意事项
注意线性表链式存储结构的特点。
八、预习与思考题
1.线性表的链式存储结构适合进行哪些运算?
实验四:
顺序栈的基本操作
一、实验目的与要求
1.掌握顺序栈的类型定义方法。
2.掌握在顺序栈上实现的基本操作:
初始化栈、判栈空否、入栈、出栈运算以及程序实现的方法。
3.掌握顺序栈的简单应用。
二、实验类型
设计型
三、实验原理及说明
1.栈属于一种运算受限的线性表,它只允许在一端进行插入和删除运算。
2.栈的运算特点是先进后出。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1.设计一个抽象数据类型栈的顺序表示和实现的演示程序,其基本操作有初始化栈、判栈空否、入栈、出栈等功能。
六、注意事项
注意栈与队列运算特点的不同。
七、预习与思考题
1.利用栈如何进行表达式求值?
实验五:
队列的基本操作
一、实验目的与要求
1.掌握队列类型定义及基本操作的实现方法。
2.理解循环队列解决假溢出的方法。
二、实验类型
设计型
三、实验原理及说明
1.队列属于一种运算受限的线性表,它只允许在一端进行插入,而在另一端进行删除运算。
2.队列的运算特点是先进先出。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1、设计一个循环队列的表示和实现的演示程序,其基本操作有初始化队列、判队列空否、入队列、出队列等功能。
六注意事项
注意栈与队列运算特点的不同。
七、预习与思考题
1.队列在实际问题中的应用。
实验六:
串的基本操作
一、实验目的与要求
1.熟练掌握字符串数据类型以及基本操作的定义方法。
2.熟练掌握字符串串的定长顺序存储结构上实现字符串的各种操作的方法。
二、实验类型
设计型
三、实验原理及说明
1.串属于一种取值受限的线性表,它是由若干个字符组成的有限序列。
2.串有3种机内表示方法:
定长顺序存储表示、堆分配存储表示、串的块链存储表示。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
1.设计一个程序实现串的基本模式匹配。
所谓模式匹配,就是判断某个串是否是另一个已知串的子串。
若果是其子串,则给出该子串的起始位置。
如果不是,则返回-1
六、注意事项
注意串的三种存储结构的区别。
七、预习与思考题
1.串与线性表的异同。
实验七:
数组和矩阵
一、实验目的与要求
掌握数组的各种存储方法及其上的基本操作的实现。
二、实验类型
设计型
三、实验原理及说明
存储单元是一维的结构,而数组是个多维的结构,用一组连续的存储单元存放数组中的数据元素则有一个次序约定。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
编写程序以矩阵格式输出按行压缩存储的n阶下三角矩阵。
六、注意事项
以行序为主序和以列序为主序存储数组中数据元素的操作不同。
七、预习与思考题
1.三对角矩阵的压缩存储方式。
实验八:
二叉树的基本操作
一、实验目的与要求
1.了解二叉树是一种重要的非线性数据结构。
2.掌握二叉树的二叉链表存储结构和遍历方法。
二、实验类型
设计型
三、实验原理及说明
1.二叉树是一种有序树。
2.二叉树的特点是每个结点至多只有两棵子树,并且,二叉树的子树有左右之分,其次序不能任意颠倒。
3.二叉树常用的遍历方法有三种:
先序遍历、中序遍历、后序遍历。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
从键盘上输入一组数据,建立一个以二叉链表形式存储的二叉树。
对所建立的二叉树分别进行先序、中序和后序遍历,并输出结果。
六、注意事项
注意二叉树是一种有序树。
七、预习与思考题
1.二叉树与树的区别。
实验九:
查找
一、实验目的与要求
1.理解折半查找原理。
2.通过折半查找的算法实现,进一步掌握顺序查找和分块查找的算法。
二、实验类型
设计型
三、实验原理及说明
1.若查找表中元素按关键字有序,并采用顺序存储结构进行存储,可采用折半查找方法进行查找。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
建立一个有序的顺序表,利用折半查找方法查找元素。
要求能进行多次查找,并对每次查找输出结果,成功则输出在有序表中的位置,失败则输出“无此元素”。
六注意事项
二分查找仅适用于有序表。
七、预习与思考题
1.比较顺序查找、分块查找和二分查找的异同。
实验十:
排序
一、实验目的与要求
1.理解各种排序基本思想和特点。
2.对已知一组数据,能写出其排序过程的完整程序,并上机调试。
3.了解每一种排序的时间和空间复杂度。
二、实验类型
设计型
三、实验原理及说明
排序是指将待排序的数据元素按照某种规律顺序排列起来,使得它们按照关键字由小到大(或者由大到小)排列。
四、实验仪器
安装C语言环境(TC或VC++)的计算机若干台
五、实验内容和步骤
编写一个完整程序,采用两种排序方法实现对某一组无序序列的非递减排序操作。
在主程序中输入初始序列,调用排序算法进行排序,输出排序结果。
六、注意事项
注意各种排序算法思路的不同。
八、预习与思考题
1.希尔排序和快速排序算法的时间复杂度。