课程实验报告(实验3 ——栈、队列、递归设计)参考答案

课程实验报告(实验3 ——栈、队列、递归设计)参考答案


2024年4月12日发(作者:)

国家开放大学《数据结构》课程实验报告

(实验3 栈、队列、递归设计)

学生姓名

班 级

实验名称

学 号

指导老师

实验成绩

实验报告

实验目的:

编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。

实验要求:

(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。

(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作

规则打印结果栈中的元素。

实验基本原理:

(1)采用顺序栈,即用数组存储栈元素。

(2)设定一个临时队列,用来存放从初始栈中出栈的元素。

(3)取出栈底元素后,将队列中的元素逐一出队并压入初始栈中。

程序代码:

/*实验2.1 栈和队列的基本操作*/

#include

#include

#define MaxSize 100

typedef int ElemType;

typedef struct

{

ElemType data[MaxSize];

int top; /*栈顶指针*/

} SeqStack; /*定义顺序栈*/

typedef struct

{

ElemType data[MaxSize];

int front,rear; /*队头和队尾指针*/

} SeqQueue; /*定义顺序队列*/

void InitStack(SeqStack *s); /*初始化栈*/

int StackEmpty(SeqStack *s); /*判栈空*/

int StackFull(SeqStack *s); /*判栈满*/

void Push(SeqStack *s,ElemType x); /*进栈*/

ElemType Pop(SeqStack *s); /*出栈*/

ElemType GetTop(SeqStack *s); /*取栈顶元素*/

void DispStack(SeqStack *s); /*依次输出从栈顶到栈底的元素*/

void DispBottom(SeqStack *s); /*输出栈底元素*/

void InitQueue(SeqQueue *sq); /*初始化队列*/


发布者:admin,转转请注明出处:http://www.yc00.com/web/1712852371a2134722.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信