版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据结构》实验报告班级:JS001001姓名:葛赛磊学号:2010300006E-mai1:1015562653@qq.com日期:2012.10.25◎实验题目:用两个桟模拟一个队列◎实验目的:理解并掌握栈与队列的特点,以及他们之间的联系和区别◎实验内容=用两个栈模拟一个队列,实现判断栈空•栈满以及入队和出队操作。一、需求分析1、 输入的形式和输入值的范围:输入字母选择相应操作;输入需要进队或出队的元素个数。2、 输出的形式:输出入队或者出队的元素,若队空则输出队空以及队空时输出的元素及其个数;若队满则输出“队已满”,并输出截止队满时出队的元素个数。3、 程序所能达到的功能:(1) 执行任意个数元素的入队操作(2) 执行任意个数元素的出队操作(3) 判断队空(4) 判断队满4、 测试数据:操作选项输入a;入队元素个数:323操作选项输入b;出队元素个数:2操作选项输入a;入队元素个数121213141516171819202122二概要设计
抽象数据类型定义:定义两个链表:typedefstruct{intdata[MaxsizeJ;inttop;:seqstack;seqstacksi,s2;输入输出元素个数:intn,m,x,i,j;操作选项控制符:charw,a,b,c;主程序的流程:根据提示输入符号选择相应操作;根据选择执行相关操作进行入栈:判断栈是否已满,并进行入队操作并输出成功入队的元素个数,进行出栈;判断栈是否为空,并进行出栈操作,输出成功出栈的元素个数其函数之间调用关系如下:出队操作模块块入队操作模块模块、f调用结束后,main()函数返回0执行结束后,重新执行判定操作和循环。注:大箭头表示函数调用,小箭头表示程序执行过程;三详细设计元素类型typedefstruct{intdata[Maxsize];inttop;;seqstack;seqstacksi,s2;intn,m,x,i,j;charw,a,b,c;每个模块的分析:主程序模块://主函数intmain(){si.top二一1,s2.top=~l;//执行选择操作cout<〈〃执行进队操作请输入a;\n执行出队操作请输入b;\n停止操作请输入c,,<<endl;cin>>w;while(w!=,c){//判断栈满,并执行入队操作if(w二二'a){cout«z/请输入入队元素个数〃<〈endl;cin>>n;for(i=0,j=0;i<n;i++){cin»x;if(si.top==Maxsize~1&&s2.top!二一1)cout<<?/队已满,,«endl;elsepush(si,x);j++;}}cout«z/共入队个元素v«endl;}//判断栈空并进行出队操作elseif(w==,b'){cout«,z请输入出队元素个数〃<〈endl;cin>>m;for(j=0;j<m;j++){if(si.top二二T&&s2.top==-l){cout<</,队已空,,«endl;break;}elsepop(s2);}cout«,z共出队个元素,z<<endl;}elsecout«,z输入有误,请核对后重新输入"<〈endl;cout«/,执行进队操作请输入a;\n执行出队操作请输入b;\n停止操作请输入c,,<<endl;cin>>w;}return0;}入队函数voidpush(seqstack&si,intx){//I栈满,2栈空,进行倒栈操作if(si.top二二Maxsize-1&&s2.top二二T){while(si.top!=~l){s2.top++;s2.data[s2.topj=sl.data[sl.top];si.top―;}sl・top++;sl・data[sl・topj=x;}else{sl・top++;sl・data[sl・topj=x;}}出队函数voidpop(seqstack&s2){intx;if(s2・top二二T){while(si・top!二T){s2・top++;s2・data[s2・topj=sl・data[sl・top];sl・top一一;}{x=s2・data[s2・top];s2・top--;cout<<x<<endl;}}else{x=s2・data[s2・top];s2・top——;cout<<x<<endl;}}使用说明、测试分析及结果程序使用说明;(1) 本程序的运行环境为VC6.Oo(2) 进入演示程序后即显示提示信息:〃执行进队操作请输入a;执行出队操作请输入b;停止操作请输入c;2、 测试结果与分析;操作选项:输入a;入队元素个数:323共入队3个元素;操作选项输入b;出队元素个数:212共出队2个元素;操作选项输入a:入队元素个数121213141516171819202122栈己满,共入队10个元素;操作选项:输入f输入有误,请核对后重新输入3、 调试过程中遇到的问题是如何解决提以及对设计与实现的回顾讨论和分析;首先是一次性在栈1中输入较多元素时出现错误,解决方案:进一步分析,增加了二栈为空时的倒栈操作,解决了问题;其次是判断栈满后继续操作时出现错误,请教别人得知是由于输入区缓存未清除造成的。4、 运行界面。
g输进岀操入队队作入队元素c个23入g输队逬岀操入2丿队队作岀卜元素队元素1c个1请请人"臥臥作tc入入•f;ab入入五、实验总结(1) 你在编程过程中花时多少?一个晚上。(2) 多少时间在纸上设计?半小时。(3) 多少时间上机输入和调试?四个小时。(4) 多少时间在思考问题?一个小时(5) 遇到了哪些难题?循环链表的输出时出现问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业技术培训对农户生产行为的影响研究意义
- 棒球教练投球姿势安全教育培训
- 家庭丝绸被芯正确晾晒指南
- TC260-005 人工智能应用伦理安全指引1.0
- 2026年河北省唐山市中考英语一模试卷(含详细答案解析)
- 【高中语文+】《哈姆莱特》课件+统编版高一语文必修下册
- 2025年省级行业企业职业技能竞赛(水轮发电机组值班员)考试题及答案(辽宁省)
- 公路水泥混凝土路面施工技术细则
- 粮食仓储质量检验员岗位实训教材
- 2025年公共卫生监督执法技能竞赛(公共场所卫生监督)全真模拟试题及答案
- 《纺织材料的基础概念》课件
- 第一章体育与健康基础知识 第一节 科学发展体能 课件 2024-2025学年人教版初中体育与健康八年级全一册
- 2025年浙江宁波市粮食收储有限公司招聘笔试参考题库含答案解析
- 二零二五年度高校毕业生论文保密及知识产权保护协议3篇
- 12J201平屋面建筑构造图集(完整版)
- DB21-T 4052-2024 统筹共享卫星遥感影像数据生产技术规程
- 【MOOC】方剂学-河南中医药大学 中国大学慕课MOOC答案
- Profinet(S523-FANUC)发那科通讯设置
- 2024年河北省中考数学试题含答案
- 高中名校自主招生考试数学重点考点及习题精讲讲义下(含答案详解)
- DL∕T 5344-2018 电力光纤通信工程验收规范
评论
0/150
提交评论