国家开放大学《数据结构》课程实验报告(实验3 ——栈、队列、递归设计)参考答案.pdf
博观而约取,厚积而薄发。——苏轼
国家开放大学《数据结构》课程实验报告
(实验3栈、队列、递归设计)
学生姓名学号
班级指导老师
实验名称实验成绩
实验报告
实验目的:
编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。
实
验实验要求:
概(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。
述(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作
规则打印结果栈中的元素。
实验基本原理:
(1)采用顺序栈,即用数组存储栈元素。
(2)设定一个临时队列,用来存放从初始栈中出栈的元素。
(3)取出栈底元素后,将队列中的元素逐一出队并压入初始栈中。
程序代码:
/*实验2.1栈和队列的基本操作*/
实#includestdio.h
验#includestdlib.h
内#defineMaxSize100
容typedefintElemType;
typedefstruct
{
ElemTypedata[MaxSize];
inttop;/*栈顶指针*/
}SeqStack;/*定义顺序栈*/
typedefstruct
{
ElemTypedata[MaxSize];
intfront,rear;/*队头和队尾指针*/
}SeqQueue;/*定义顺序队列*/
voidInitStack(SeqStack*s);/*初始化栈*/
intStackEmpty(SeqStack*s);/*判栈空*/
intStackFull(SeqStack*s);/*判栈满*/
voidPush(SeqStack*s,ElemTypex);/*进栈*/
ElemTypePop(SeqStack*s);/*出栈*/
ElemTypeGetTop(SeqStack*s);/*取栈顶元素*/
voidDispStack(SeqStack*s);/*依次输出从栈顶到栈底的元素*/
voidDispBottom(SeqStack*s);/*输出栈底元素*/
voidInitQueue(SeqQueue*sq);/*初始化队列*/
博观而约取,厚积而薄发。——苏轼
intQueue