电子信息工程学院
2013
级《数据结构》实验报?/p>
姓名
学号
实验项目
栈和队列及其应用?/p>
I
?/p>
实验内容
1
.采用顺序存储结构,实现栈的存储和基本操作?/p>
栈的抽象数据类型定义参见教材?/p>
45
页?/p>
栈的顺序存储结构定义参见教材?/p>
46
页?/p>
2
.采用顺序存储结构,实现队列的存储和基本操作
队列的抽象数据类型定义参见教材第
59
页?/p>
队列的顺序存储结构定义参见教材第
64
页?/p>
算法设计与程序实现:
算法分析
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
DataStructure_LinearList.h
中的相关功能函数,完成实验要求?/p>
程序实现步骤?/p>
1
?/p>
顺序栈结构的基本操作?/p>
首先初始化一个顺序栈结构?/p>
然后输入需
入栈的元素个?/p>
N
,通过一个循环依次输?/p>
N
个元素,在输入的同时调用?/p>
栈函?/p>
,
这样就完成了
N
个元素的入栈操作,随后调用返回栈顶元素的函数?/p>
返回栈顶元素?/p>
接着通过循环调用出栈函数完成出栈操作?/p>
最后销毁栈结构?/p>
当然在进行入栈和出栈操作时,会使用判断栈是否为空、对栈进行遍历等?/p>
作,这样就实现了对栈的基本操作?/p>
2
、栈结构的基本应用:?/p>
1
)将输入的十进制数转换为二进制数。首
先初始化一个栈结构,构造一个空栈,然后输入十进制数
N
,根据十进制?/p>
换为二进制的方法(除二取余法)通过循环判断将每次除二求模的数入栈,
接着通过判断栈空条件,依次将栈中的元素出栈,然后输出这样就实现了?/p>
进制对二进制的转换,当然其他进制之间的也是如此。(
2
?/p>
Hanoi
问题的实
现。其主要思想就是递归,在进行递归调用函数本身的时候,参数的传递?/p>
变量保存以及函数返回都使用了栈结构(操作系统建立)?/p>
3
?/p>
顺序队列的基本操作:
首先初始化一个空的顺序结构队列,
然后?/p>
入需入队列的元素个数
N
,通过一个循环依次输?/p>
N
个元素,输入的同时调
用入队列函数
,
完成?/p>
N
个元素的入队列操作,接着调用返回队头元素的函
数,返回队头元素,接着通过循环调用出队列函数完成出队列操作,最后销
毁顺序队列结构,这样就实现了对栈的基本操作?/p>
核心程序
此程序中用到的自己编写的头文件以在下面给出,而头文件的说明则?/p>
主函数中文件包含部分的注释处,核心程序如下:
1.
主函数如下:
#include
"iostream" //
标准输入输出流库文件
#include
"windows.h"
//cmd
窗口设置函数头文?/p>
#include
"ADT.h"
//
数据结构中相关结构体类型定义及相关数据类型定?/p>
#include
"DataStructure_LinearList.h"
//
数据结构第二章线性表中相关函数的?/p>
义及声明
using
namespace
std;