- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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);}
您可能关注的文档
最近下载
- GB50709-2011 钢铁企业管道支架设计规范.pdf VIP
- 压力性损伤护理与管理能力提升题库答案-2025年华医网继续教育.docx VIP
- 基因多态性与疾病易感性-洞察及研究.docx VIP
- 三位一体煅烧炉生产无水氟化铝工艺说明 .pdf VIP
- 卵巢囊肿蒂扭转急诊护理查房.pptx VIP
- 《中华人民共和国国歌》PPT课件.ppt VIP
- 2025年航空货运行业市场规模及未来五到十年发展趋势报告.docx
- 初中八年级全套体育教案(共36课).docx VIP
- 50045 GBJ45-82 高层民用建筑设计防火规范.pdf VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
文档评论(0)