用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc

用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc

ID:58234922

大小:67.50 KB

页数:8页

时间:2020-05-19

用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc_第1页
用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc_第2页
用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc_第3页
用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc_第4页
用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc_第5页
资源描述:

《用两个栈模拟一个队列,并实现判断栈空.栈满以及入队和出队操作.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《数据结构》实验报告班级:JS姓名:葛赛磊学号:E-mail:@qq.com日期:2012.10.25◎实验题目:用两个栈模拟一个队列◎实验目的:理解并掌握栈与队列的特点,以及他们之间的联系和区别◎实验内容:用两个栈模拟一个队列,实现判断栈空.栈满以及入队和出队操作。一、需求分析1、输入的形式和输入值的范围:①输入字母选择相应操作;②输入需要进队或出队的元素个数。2、输出的形式:输出入队或者出队的元素,若队空则输出队空以及队空时输出的元素及其个数;若队满则输出“队已满”,并输出截止队满时出队的元素个数。3、程序所能达到的功能:(1)执行任意个

2、数元素的入队操作(2)执行任意个数元素的出队操作(3)判断队空(4)判断队满4、测试数据:操作选项输入a;入队元素个数:3123操作选项输入b;出队元素个数:2操作选项输入a;入队元素个数12111213141516171819202122二概要设计(1)抽象数据类型定义:定义两个链表:typedefstruct{intdata[Maxsize];inttop;}seqstack;seqstacks1,s2;输入输出元素个数:intn,m,x,i,j;操作选项控制符:charw,a,b,c;(2)主程序的流程:1.根据提示输入符号选择相应操作

3、;2.根据选择执行相关操作①进行入栈:判断栈是否已满,并进行入队操作并输出成功入队的元素个数,②进行出栈;判断栈是否为空,并进行出栈操作,输出成功出栈的元素个数(3)其函数之间调用关系如下:main()模块(开始创建链表)②操作判定模块入队操作模块模块出队操作模块块调用结束后,main()函数返回0执行结束后,重新执行判定操作和循环。注:大箭头表示函数调用,小箭头表示程序执行过程;三详细设计1.元素类型typedefstruct{intdata[Maxsize];inttop;}seqstack;seqstacks1,s2;intn,m,x,

4、i,j;charw,a,b,c;2.每个模块的分析:(1)主程序模块://主函数intmain(){s1.top=-1,s2.top=-1;//执行选择操作cout<<"执行进队操作请输入a;执行出队操作请输入b;停止操作请输入c"<>w;while(w!='c'){//判断栈满,并执行入队操作if(w=='a'){cout<<"请输入入队元素个数"<>n;for(i=0,j=0;i>x;if(s1.top==Maxsize-1&&s2.top!=-1){if(i==j)

5、cout<<"队已满"<>m;for(j=0;j

6、ut<<"执行进队操作请输入a;执行出队操作请输入b;停止操作请输入c"<>w;}return0;}(2)入队函数voidpush(seqstack&s1,intx){//1栈满,2栈空,进行倒栈操作if(s1.top==Maxsize-1&&s2.top==-1){while(s1.top!=-1){s2.top++;s2.data[s2.top]=s1.data[s1.top];s1.top--;}s1.top++;s1.data[s1.top]=x;}else{s1.top++;s1.data[s1.top]

7、=x;}}(3)出队函数voidpop(seqstack&s2){intx;if(s2.top==-1){while(s1.top!=-1){s2.top++;s2.data[s2.top]=s1.data[s1.top];s1.top--;}{x=s2.data[s2.top];s2.top--;cout<

8、行进队操作请输入a;执行出队操作请输入b;停止操作请输入c;2、测试结果与分析;操作选项:输入a;入队元素个数:3123共入队3个元素;操作选项输入b;出队元素个数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。