利用栈队列逆置.docVIP

  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文档。上传文档
查看更多
利用栈队列逆置

实验报告 **_专业 **班 _**年__*月_**日 姓名_***__ 学号***电话*** 一:实验题目 试利用堆栈将队列中的元素逆置。该程序的功能是实现顺序栈及队列的定义和操作。该程序包括定义的栈结构类型、队列结构类型以及对每一种栈、每一种队列操作的具体的函数定义和主函数。 二:.需求分析 本演示程序用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)

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

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

1亿VIP精品文档

相关文档