数据结构实验报告共享栈.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文档。上传文档
查看更多
数据结构实验报告共享栈.doc

数 据 结 构 实 验 报 告 成绩_____ 学号 1217417007 姓名 严梦 授课教师 黄 欣 专业 12信计 实验报告递交日期 10/8 实验题目 两个栈共享向量(栈类型定义如下),它们的栈底分别设在向量的两端,编制程序完成共用栈操作。 一. 需求分析 1.程序实现的功能:完成共用栈操作。 编制函数: 1). 元素x进栈i函数; void push(seqstack *s,int i,datatype x); 2). 栈i退栈,并返回原栈顶元素函数; datatype pop(seqstack *s,int i); 3). 取栈i顶元素函数;datatype top(seqstack *s,int i); 4).显示共用栈内容;void show(seqstack *s); 5). 主函数完成功能: a). 开辟栈空间; b). 两个栈分别进栈若干个元素; c). 两个栈分别退栈或取栈顶若干个元素;d). 显示最后栈内容; 2.数据输入的内容﹑输入形式与范围 输入所创建的栈规模n1,n2;输入进栈数据,其类型是整型数;输入数据以回车符相隔。 3.数据输出的内容与形式 输出取栈或出栈数据,输出共用栈元素, 数据以回车符相隔。 二. 主要算法的算法思想. 1.开辟栈空间: 定义数组开辟静态空间存储共用栈 2. 元素x进栈i函数: 判断进栈i,判断栈i是否已满,不满则执行进栈操作,否则不执行。 3. 栈i退栈,并返回原栈顶元素函数: 判断退栈i,判断栈i是否已空,非空则执行退栈操作,否则不执行。 4. 取栈i顶元素函数: 判断取栈i,判断栈i是否为空,非空则执行取栈顶操作,否则不执行。 5. 主函数: 开辟栈空间;依次调用进栈函数、退栈函数;调用去栈顶函数、显示共用栈函数。 三. 设计: 1.共用栈存储结构:顺序表。 共用栈类型定义: typedef struct {datatype v[m]; Int top0,top1; }seqstack; /*单链表结点类型*/ 2.参数表(列出所有的符号常量与全局变量) 参数名 数据传递方式 数据内容 传递 所属函数 m 符号常量 宏定义 100 所有函数 3.函数间的调用关系图 4.列出每个函数的函数声明、函数作用、函数值、形参内容与形式、主要算法步骤等 1).元素x进栈i元素 函数首部:void push(seqstack *s,int i,datatype x); 形参:seqstack *s,int i,datatype x 函数作用:将元素x压入栈i顶端 函数值:无 局部变量 无 进栈算法主要步骤: (a) 判别栈是否已满 if(s-top0s-top1); (b) 判别进栈i if(s-top0==i); (c) 栈顶位置移动 s-top0++;else s-top1--; (d) 元素x进栈 s-v[s-top]=x; 2).栈i退栈,并返回原栈顶元素函数 函数首部:datatype pop(seqstack *s,int i); 形参:seqstack *s,int i 函数作用:栈i退栈,并返回原栈顶元素 函数值:datatype data 局部变量 datatype data 算法主要步骤: 判断是否为空栈: (a)若空,则输出“upflow error” if(s-top00) printf(upflow error\n); if(s-top199) printf(upflow error\n); (b)若不为空,则退栈,取栈顶元素并栈顶标志移动 data=s-v[s-top0];s-top0--; data=s-v[s-top1];s-top1++; 3). 取栈i顶元素函数 函数首部:datatype top(seqstack *s,int i); 形参:seqstack *s,int i 函数作用:读取栈i的栈顶元素。 函数值:datatype data 局部变量:datatype data data 算法主要步骤: (a) 判断栈i是否为空;if(s-top0==i){if(s-top00)printf(empty error\n);}

文档评论(0)

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

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

1亿VIP精品文档

相关文档