- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用栈队列逆置
实验报告
**_专业 **班 _**年__*月_**日
姓名_***__ 学号***电话***
一:实验题目
试利用堆栈将队列中的元素逆置。该程序的功能是实现顺序栈及队列的定义和操作。该程序包括定义的栈结构类型、队列结构类型以及对每一种栈、每一种队列操作的具体的函数定义和主函数。
二:.需求分析
本演示程序用TC 编写,完成栈的初始化、栈的判空、入栈、出栈、输出栈中所有元素队列的初始化、队列长、取队头元素、入队、出队、判断队空、输出队中所有元素等功能。
① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置。在所有输入中,元素的值都是整数
② 输出的形式:在所有三种操作中都显示操作是否正确以及操作后栈的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。
③ 程序所能达到的功能:栈的初始化、栈的判空、入栈、出栈、取栈顶元素、输出栈中所有元素、显示菜单、队列的初始化、队列长、取队头元素、入队、出队、判断队空、输出队中所有元素。
④ 测试数
据:
A: 建立队列为1,2,3,4,5
B: 求出队的长度为5;
C: 取队头5, 返回这个元素在栈中的位置
D:遍历队列 1,2,3,4,5
E: 出队,完成入栈。
F: 出栈,完成队列逆置。5,4,3,2,1
三:概要设计
为了实现上述程序功能,需要定义单链表的抽象数据类型:
typedef struct //定义队列结构体类型
{
DataType *base;
int front;
int rear;
}Queue;
/* 定义DataType为int类型 */
typedef int DataType;
/* 栈的结点类型 */
#define MAXSIZE 1024
typedef struct
{DataType data[MAXSIZE];
int top;
}SeqStack;
/* 初始化顺序栈 */
SeqStack SeqStackInit()
/* 检查顺序栈是否为空 */
int SeqStackEmpty(SeqStack S)
/* 把S置为空栈 */
void ClearStack(SeqStack *S)
/* 把元素x压入栈,使其成为新的栈顶元素 */
void SeqStackPush(SeqStack *S,DataType x)
/* 把栈顶元素弹出 */
DataType SeqStackPop(SeqStack *S)
/*输出顺序栈中的元素*/
void SeqStackPrint(SeqStack S)
void InitQ(Queue *Q) //初始化操作
int GetLen(Queue Q) //求队列长操作
int Getfront(Queue Q, DataType e) //取队头元素操作
int Enqueue(Queue *Q, DataType x) //入队列操作
int Outqueue(Queue *Q,DataType e,SqeStack *s) //出队列操作
int Empty(Queue *Q) //判断空操作
void List(Queue *Q) //输出操作
2、本程序包含14个函数:
(1)初始化函数:SqeStack SqeStackInitstack()
(2)判断栈是否为空的函数:int SqeStackEmpty(SqeStack s)
(3)入栈函数:void SqeStackPush(SqeStack *s ,int x)
(4)出栈函数:int SqeStackPop(SqeStack s)
(5)取栈顶:int SqeStackGetTop( SqeStack s)
(6)输出栈中所有元素:void SqeStackPrint(SqeStack s)
(7)主函数:main()
(8)初始化操作: void InitQ(Queue *Q)
(9)求队列长操作: int GetLen(Queue Q)
(10)取队头元素操作: int Getfront(Queue Q, DataType e)
(11)入队列操作: int Enqueue(Queue *Q, DataType x)
(12)出队列操作: int Outqueue(Queue *Q,DataType
文档评论(0)