- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京理工大学数据结构实验报告二__堆栈和队列
数据结构实验报告(二)实验二 堆栈和队列实验目的和要求:掌握堆栈和队列的基本概念;掌握堆栈和队列的基本操作。实验原理:堆栈的定义:堆栈是一种只允许在表的一端进行插入和删除运算的特殊的线性表。允许进行插入和删除运算的一端称为栈顶,另一端称为栈底,当链表中没有元素时,称为空栈。堆栈的插入运算称为入栈或者进栈,删除运算称为出栈或者退栈,栈顶的当前位置是动态的,标识栈顶当前位置的指针称为栈顶指针。每次进栈的数据元素都放在原当前栈顶元素之前成为新的栈顶元素,每次退栈的数据元素都是原当前栈顶元素,最后进入堆栈的数据元素总是最先退出堆栈。堆栈的存储结构:顺序存储结构:栈的顺序存储结构称为顺序栈。顺序栈的本质是顺序表的简化。链式存储结构:栈的链式存储结构称为链栈,通常用单链表示。链栈的插入和删除操作只需处理栈顶的情况。队列的定义:队列是允许在表的一端进行插入,而在表的另一端进行删除的特殊线性表。允许进行插入的一端称为队尾,允许进行删除的一端称为队头。队列的插入运算称为进队或者入队,删除运算称为出队或者离队,因此队列又称为先进先出表。队列的存储结构队列的存储结构同线性表一样,可以分为顺序结构和链式结构。顺序存储结构:用顺序存储结构存储队列称为顺序队列。顺序队列会出现假溢出问题,解决办法是用首尾相接的书顺序存储结构,称为循环队列。在队列中,只要涉及队头或者队尾指针的修改都要对其求模。链式存储结构:用链式存储结构存储的队列称为链队列。链队列的基本操作的实现基本上也是单链表操作的简化。通常附设头结点,并设置队头指针指向头结点,队尾指针指向终端结点。插入数据时只考虑在链队列的尾部进行,删除数据时只考虑在链队列的头部进行。实验内容:试编写一个算法,建立一个学生成绩栈,要求从键盘上输入N个整数,按照下列要求分别进入不同的栈。若输入的整数X小于60,则进入第一个栈;若输入的整数x大于等于60并小于100,则进入第二个栈;若输入的整数x大于100,则进入第三个栈;分别输出每个栈的内容。编写一个程序,使用两个链队q1和q2,用来分别存储由计算机产生的20个100以内的奇数和偶数,然后每行输出q1和q2的一个值,即奇数和偶数配对输出,直到任一队列为空为止。假设一个算术表达式中可以包括三种括号:“(”和“)”,方括号“[”和“]”及花括号“{”和“}”,且这三种括号可以任意顺序的嵌套使用。编写算法判断给定表达式中所包含的括号是否配对出现。四.编程思想:P165.2首先定义一个堆栈类,采用顺序存储结构。在类中定义*elements用来存放数据。然后定义测试主函数。在主函数中,定义三个堆栈对象,将三类数据根据要求分别压入这三个对象中,最后将它们输出。P166.7 首先定义链式队列结点类,结点类的data变量用于存放数值;然后定义链式队列类,类中的函数可实现对数据的存取;使用两个链队q1和q2,分别存放奇数和偶数,定义一个函数DeleteQueue(),使得每一行输出一个奇数和一个偶数,直到任一队列空为止。P166.8采用顺序栈.用一个字符串表示一个表达式,从左向右依次扫描各个字符定义三个栈h(n),p(n),l(n).三个计数器x1,x2,x3.for(int i=0;in;i++)进行循环,遇到’[’存入h(n),遇到‘{’存入p(n),遇到’(’存到l(n)当遇到“]”“}”“)”时,分别判断相应的堆栈是否为空,若不为空,则取出栈顶元素,相应的计数器自加一,统计出成对的括号。程序代码:P165.2#includestdlib.h#includetime.h#includeiostreamusing namespace std;class List;typedef int ElemType;class SeqStack{//堆栈的数据成员 unsigned height; int top; int maxsize; //栈 的最大元素个数 ElemType *elements; //元素存储空间 public: SeqStack(int size); //构造函数,size用来设置栈的大小 ~SeqStack(){ delete[]elements;} //析构函数 void PushStack(ElemType x); //进栈函数,将元素x压入栈中 ElemType PopStack(ElemType x); //出栈函数,将栈顶元素值放入x中 void ClearStack(){top=-1;}
您可能关注的文档
- 五年级语文下册期末试卷(含答案).doc
- 五菱汽车发动机控制模块(B12)针脚定义.doc
- 井下操作规程,岗位职责.doc
- 五菱荣光发动机控制模块(B12)针脚定义.doc
- 井下机电设备防爆管理经验介绍.doc
- 井下机电设备管理制度.doc
- 亚韩医疗整形美容医院和《三湘都市报》合作方案.doc
- 亚洲硅业多晶硅厂停电应急预案(初稿).docx
- 产业转移新趋势及全国主要地区形势分析.doc
- 产品市场需求分析模板.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2025年内蒙古时事政治考试试卷带解析必考题.docx VIP
- 人教版数学三年级下册单元试卷【1-8合集,含答案】.pdf VIP
- 2025年内蒙古时事政治考试试卷带解析参考答案.docx VIP
- (答案)奥赛经典-奥林匹克数学中的几何问题---习题与讲解(第1-2章).pdf VIP
- 奥赛经典奥林匹克数学中的几何问题.pdf VIP
- 奥的斯电梯ACD4 原理图纸注释.pdf VIP
- 2025国家能源集团新疆哈密能源化工有限公司社会招聘(51人)笔试参考题库附答案解析.docx VIP
- 建设项目环境影响报告表.PDF VIP
- 呼吸科利用PDCA循环提高住院患者吸入剂使用正确率品管圈.pptx VIP
- 2024-2030年全球气动导弹弹射发射器(PMEL)行业现状、重点企业分析及项目可行性研究报告.docx
文档评论(0)