数据结构实验指导书级.docx
- 文档编号:7063912
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:10
- 大小:82.19KB
数据结构实验指导书级.docx
《数据结构实验指导书级.docx》由会员分享,可在线阅读,更多相关《数据结构实验指导书级.docx(10页珍藏版)》请在冰豆网上搜索。
数据结构实验指导书级
数据结构
实验指导书
赵娇洁编写
沈阳师范大学软件学院
2016年7月
目录
实验一顺序表的操作1
实验二单链表的操作2
实验三栈的操作及应用3
实验四队列的操作及应用4
实验五稀疏矩阵的压缩存储及转置5
实验六二叉树的创建与遍历6
实验七二叉树的创建与遍历7
实验八查找8
实验九查找9
实验十排序10
实验十一排序11
实验一顺序表的操作
时间:
2016年10月13日周四1.2节
一、实验目的
1、掌握顺序表存储结构的定义及C/C++语言实现
2、掌握顺序表的各种基本操作及C/C++语言实现
3、设计并实现顺序表的建立、输出、插入、删除等常规算法
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、问题描述
顺序表经常进行的运算包括:
创建顺序表、销毁顺序表、求顺序表的长度、在顺序表中查找某个数据元素、在某个位置插入一个新数据元素、在顺序表中删除某个数据元素等操作。
试编程实现顺序表的这些基本运算。
2、基本要求
顺序表的每个运算要求用一个函数实现。
要求至少实现顺序表的建立、删除元素、插入元素、显示顺序表函数,并定义主函数进行验证。
3、算法实现
实验二单链表的操作
时间:
2016年10月20日周四1.2节
一、实验目的
1、掌握单链表存储结构的定义及C/C++语言实现
2、掌握单链表的基本操作及C/C++语言实现
3、建立并显示链表结点数据,并执行结点插入、删除操作
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、问题描述
链表经常进行的运算操作有创建链表、求链表的长度、在链表中查找某个数据元素、在某个位置插入一个新数据元素、在链表中删除某个数据元素等操作。
试编程实现链表的这些基本运算。
2、基本要求
链表的每个运算要求用一个函数实现。
要求至少实现链表的建立、插入、删除、显示函数,并定义主函数进行验证。
3、算法描述
在设计链表的各种运算之前,最重要的准备工作是定义链式存储(即链表)的结点类型,最简单的链表的结点类型可由数据域data和指针域next两部分组成。
然后再分别设计各种运算的具体函数。
最后在主函数中实现链表的各种运算时,分别调用相应的函数即可。
首先,在主函数中创建一个包含若干个结点的链表,在此基础上,就可以调用插入函数在链表的某个位置插入结点,调用删除函数删除某个位置的结点,调用求长度函数求出链表的长度,当然其他运算依次类推。
为方便地实现上述的个种基本运算,可以再设计一个操作方便的主菜单。
在整个算法中有一个贯穿各个运算函数之间的线索,那就是链表。
因此各个函数中的运算对象都是针对同一个链表的。
可以把链表头指针定义为引用参数,也可以把指向链表的表头指针设定为全局变量。
4、算法实现
实验三栈的操作及应用
时间:
2016年10月27日周四1.2节
一、实验目的
1、掌握栈的存储结构表示方法
2、掌握栈基本运算实现
3、设计用栈实现十进制到二进制的转换算法
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、问题描述
进行十→二进制转换时涉及到余数的存储问题,存储的顺序与读写的顺序相逆。
2、基本要求
利用栈实现算法。
3、算法描述
首先,建立一个栈结构,且初始化为空,即令栈顶指针top=base。
然后由键盘上随机输入一个整数,利用取模运算求余数,并入栈保存起来,直到商为零为止。
在输出转换结果时进行出栈运算,判断栈是否为空,出栈并输出直到栈为空。
4、算法实现
实验四队列的操作及应用
时间:
2016年11月3日周四1.2节
一、实验目的:
1、了解队列的概念、队列的特性
2、掌握在两种存储结构上如何实现队列的基本操作以及队列在程序设计中的应用
3、通过在VC6.0中实现队列的插入和删除,加深理解链队列和循环队列的意义。
(1)栈的顺序存储结构和链式存储结构;
(2)掌握栈的先进后出的原则;
(3)掌握栈的基本运算;加深理解顺序栈和链栈的意义,理解用栈的插入和删除操作算法。
(4)掌握队列的顺序存储结构和链式存储结构;
(5)掌握队列的先进先出的原则;
(6)掌握队列的基本运算;加深理解顺序循环队列和链队列的意义,理解用顺序循环队列和链队列的入队和出队等基本操作算法。
4、实验要求
(1)理解栈初始化、判断栈是否空、入栈、出栈等算法;
(2)理解队列入队、出队等算法。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、问题描述
队列是操作受限的线性表,是只允许仅在表的一端进行插入,而在另一端进行删除操作的线性表。
在队列中,允许插入的一端称为队尾(rear),允许删除的一端称为对头(front);链队列的插入删除即入队和出队分别在队列的尾和头进行。
注意在循环队列中队满和队空的描述方法。
2、基本要求
实现链队列的入队和出队算法,循环队列的插入删除算法。
3、算法描述
分别建立链队列和循环队列,实现在不同队列中的入队和出队操作。
4、算法实现
实验五稀疏矩阵的压缩存储及转置
时间:
2016年11月10日周四1.2节
一、实验目的:
1、熟悉数组类型的实现
2、掌握稀疏矩阵的三元组表示法的实现
3、掌握三元组表示法的矩阵的转置运算
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、定义矩阵的三元组顺序表结构;
2、用三元组表示法来实现矩阵的转置运算。
3、算法实现
实验六二叉树的创建与遍历
时间:
2016年11月27日周四1.2节
一、实验目的:
1、掌握二叉树链式存储的类型定义及实现。
2、掌握二叉树链式存储的各种基本运算方法。
如二叉树的创建、遍历、查找等运算。
3、掌握二叉树用不同方法表示所对应的不同输入形式。
4、掌握二叉树中各重要性质在解决实际问题中的应用。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
建立二叉树并实现各种遍历
1、问题描述
对二叉树的各种结点都访问,而且每个结点只访问一次的过程称为二叉树的遍历。
根据访问二叉树中左子树、根、右子树的不同顺序,可先分为先根遍历、中根遍历、后根遍历三种访问方法。
另外,由于二叉树中所有结点有相应的层次顺序,则按照从第1层到最后一层的访问顺序,并且每层都从左到右进行访问,又可得到层序遍历的访问方法。
试编程完成:
(1)用递归方法完成二叉树的创建、先根遍历、中根遍历、后根遍历。
(必做)
(2)用非递归方法完成完成二叉树的创建、按层遍历、中根遍历、后根遍历。
(选作)
2、基本要求
程序运行时,输入二叉树结点序列(一个字符串),建立二叉树,然后对建立的二叉树分别进行先序、中序和后序遍历;要求格式化输出遍历结果:
每一序列数据之间用“->”分开;三种遍历结果应分行显示;输出结果之前最好给出提示,如:
InOrderTraverse:
;
3\算法实现
实验七二叉树的创建与遍历
时间:
2016年11月24日周四1.2节
一、实验目的:
1、掌握二叉树链式存储的类型定义及实现。
2、掌握二叉树链式存储的各种基本运算方法。
如二叉树的创建、遍历、查找等运算。
3、掌握二叉树用不同方法表示所对应的不同输入形式。
4、掌握二叉树中各重要性质在解决实际问题中的应用。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
建立二叉树并实现各种遍历
1、问题描述
对二叉树的各种结点都访问,而且每个结点只访问一次的过程称为二叉树的遍历。
根据访问二叉树中左子树、根、右子树的不同顺序,可先分为先根遍历、中根遍历、后根遍历三种访问方法。
另外,由于二叉树中所有结点有相应的层次顺序,则按照从第1层到最后一层的访问顺序,并且每层都从左到右进行访问,又可得到层序遍历的访问方法。
试编程完成:
(1)用递归方法完成二叉树的创建、先根遍历、中根遍历、后根遍历。
(必做)
(2)用非递归方法完成完成二叉树的创建、按层遍历、中根遍历、后根遍历。
(选作)
2、基本要求
程序运行时,输入二叉树结点序列(一个字符串),建立二叉树,然后对建立的二叉树分别进行先序、中序和后序遍历;要求格式化输出遍历结果:
每一序列数据之间用“->”分开;三种遍历结果应分行显示;输出结果之前最好给出提示,如:
InOrderTraverse:
;
3、算法实现
实验八查找
时间:
2016年12月1日周四1.2节
一、实验目的
1、掌握顺序表查找中不同查找方法的查找思想,并能用C/C++语言实现。
2、掌握树表查找中二叉排序树查找、平衡二叉树查找的查找思想,并能用C/C++语言实现。
3、掌握Hash表查找中的查找思想,并能用C/C++语言实现。
4、能够针对具体实际,灵活选用适宜的查找方法。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、有序表的结构定义
typedefstruct
{intkey;
}elemtype;
typedefstruct
{elemtype*elem;
intlength;
}sstable;
2、顺序查找算法
3、有序表的折半查找算法
实验九查找
时间:
2016年12月8日周四1.2节
四、实验目的
1、掌握顺序表查找中不同查找方法的查找思想,并能用C/C++语言实现。
2、掌握树表查找中二叉排序树查找、平衡二叉树查找的查找思想,并能用C/C++语言实现。
3、掌握Hash表查找中的查找思想,并能用C/C++语言实现。
4、能够针对具体实际,灵活选用适宜的查找方法。
五、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
六、实验内容
1、有序表的结构定义
typedefstruct
{intkey;
}elemtype;
typedefstruct
{elemtype*elem;
intlength;
}sstable;
2、顺序查找算法
3、有序表的折半查找算法
实验十排序
时间:
2016年12月22日周四1.2节
一、实验目的
1、掌握插入排序、选择排序、交换排序、归并排序等各种排序方法的基本思想并能用C/C++语言实现。
2、掌握各种排序方法的特点及适用情形,并能在解决实际问题的过程中灵活选用不同的排序方法。
3、掌握各种排序方法的操作过程及其依据。
4、通过各种排序算法的编写加深对各种排序方法的基本思想、排序过程以及排序的时间复杂度的理解。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、直接插入排序
2、选择排序
3、算法实现
实验十一排序
时间:
2016年12月29日周四1.2节
一、实验目的
1、掌握插入排序、选择排序、交换排序、归并排序等各种排序方法的基本思想并能用C/C++语言实现。
2、掌握各种排序方法的特点及适用情形,并能在解决实际问题的过程中灵活选用不同的排序方法。
3、掌握各种排序方法的操作过程及其依据。
4、通过各种排序算法的编写加深对各种排序方法的基本思想、排序过程以及排序的时间复杂度的理解。
二、实验环境
PC微机,Windows,DOS,TurboC或VisualC++
三、实验内容
1、直接插入排序
2、选择排序
3、算法实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)