国开最新《数据结构(本)》形考任务实验报告:实验3:栈、队列、递归设计实验报告.docxVIP

国开最新《数据结构(本)》形考任务实验报告:实验3:栈、队列、递归设计实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数据结构课程实验报告

学生姓名

学号

班级

指导老师

实验名称

栈、队列、递归设计

实验成绩

实验报告

实验概述

实验目的:

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

实验要求:

(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规则打印结果栈中的元素。

实验基本原理:

实验内容

实验设计思路、步骤和方法等:

设计思路

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

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

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

实验设计

程序代码如下:

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

#include

#include

#defineMaxSize100

typedefintElemType

typedefstruc

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);/*初始化队列*1

intQueueEmpty(SeqQueue*sq);/*判队空*;

voidInQueue(SeqQueue*sq,ElemTypex);/*循环队列入队*/

ElemTypeOutQueue(SeqQueue*sq,ElemTypex);/*循环队列出队*/

ElemTypeGetQueue(SeqQueue*sq);/*取队头元素*/

voidmain()

SeqStack*s

SegQueue*sq

ElemTypex;

intn,i;

printf((1)初始化栈s\n)

s=(SeqStack*)malloc(sizeof(SeqStack));

InitStack(s);

printf((2)栈为%s\n,(StackEmpty(s)?空;非空))

printf(”(3)输入要进栈的数据个数:);

scanf(%d

printf(”依次输入进栈的%d个整数:,n)

/*数据依次进栈*/

for(i=0;i

top=-1;

}

/*判栈空*

intStackEmpty(SeqStack*s)

{

if(s-top==-1)

return1;/*栈空返回1*/

else

return0;/*否则返回0*/

}

/*判栈满*/

intStackFull(SeqStack*s)

if(s-top==MaxSize-1)

return1;/*栈满返回1*/

else

return0;/*否则返回0*/

/*进栈*/

voidPush(SeqStack*s,ElemTypex)

if(StackFull(s))

printf(”栈满溢出错误!\n”);

exit(1);

}

s-top++

s-data[s-top]=x;

/*出栈*/

ElemTypePop(SeqStack*s)

if(StackEmpty(s))

{

printf(栈下溢错误!\n)

exit(1);

s-top--;

returns-data[s-top+1];/*返回原栈顶元素值*

/*取栈顶元素*/

ElemTypeGetTop(SeqStack*s)

{

if(StackEmpty(s))

printf(栈下溢错误!\n)

exit(1);

}

returns-data[s-top];

*依次输出从栈顶到栈底的元素*/

voidDispStack(SeqStack*s)

inti;

for(i=s-top;i=0;i--)

printf(%

文档评论(0)

欣然 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档