版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题课第3章栈和队列3.1(1)123,132,213,231,321(2)435612不能得到(6出站时,12必须在站中,只能出站成21,无法得到12)135426可以1S1X2S3S3X4S5S5X4X2X6S6X(1)如果进站的车厢序列为123,则可能得到的出站车厢序列是什么?(2)如果进站的车厢序列为123456,则能否得到435612和135426出站序列,并请说明为什么不能得到或如何得到。3.4简述以下算法的功能分析:while循环将栈中数据依次出栈到A数组for循环将数组A中元素依次入栈结果:将堆栈中的元素逆序(1)statusalgol(StackS){intI,n,A[255];n=0;while(!Stackempty(S)){n++;Pop(S,A[n]);}for(i=1;i<=n;i++)Push(S,A[i]);}3.4简述以下算法的功能分析:第一个while循环:将S栈中不等于e的元素放入T栈。最后S为空栈第二个while循环:将T栈中元素出栈到S栈
结果:将堆栈S中不等于e的元素逆序(2)statusalgo2(StackS,inte){StackT;intd;InitStack(T);while(!StackEmpty(S)){Pop(S,d);if(d!=e)Push(T,d);}while(!Stackempty(T)){Pop(T,d);Push(S,d);}}3.12写出以下程序段的输出结果分析:[队列]xy1.[h]ec2.[hr]ec3.[hrc]ec4.[rc]hc5.[rch]hc6.[ch]rc7.[cha]rc结果:charVoidmain(){QueueQ;InitQueue(Q);charx=‘e’,y=‘c’;EnQueue(Q,’h’); //1EnQueue(Q,’r’); //2EnQueue(Q,y); //3DeQueue(Q,x); //4Enqueue(Q,x); //5DeQueue(Q,x); //6EnQueue(Q,’a’); //7 while(!QueueEmpty(Q)){DeQueue(Q,y);printf(y);}printf(x);}3.14以1234作为双端队列的输入序列,分别求出满足以下条件的输出序列解:可能的组合(24种)1234,1243,1324,1342,1423,1432,2134,2143,2314,2341,2413,2431,3124,3142,3214,3241,3412,3421,4123,4132,4213,4231,4312,4321输入受限不能得到:42134231输出受限不能得到:41324231都不能得到:4231(1)4213(2)4132(3)4231(1)能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列(2)能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列(3)既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列3.16n节硬席或软席车厢调度成软席在硬席之前HSSHS=>SSSHH思路:判断每节车厢,如果是H的只入栈,如果是S则入栈后出栈InitStack(T);while(入口有车厢e){if(e==‘H’)push(T,e);else{push(T,e);pop(T,e);}}While(!EmptyStack(T))pop(T,e);
3.28带头指针的循环链表表示队列,并且只设一个指针指向队尾结点,编写队列初始化、入队列和出队列算法typedefstructQNode{ QElemType data; StructQnode *next;}QNode,*QueuePtr;typedefstruct{ QueuePtr rear;}LinkQueue;StatusInitQueue(LinkQueue&T){//构造一个带表头结点的只有一个尾指针的空队列TT.rear=(QueuePtr)malloc(sizeof(QNode);if(!T.rear)return“ERROR”;T->next=T; returnOK;}3.28带头指针的循环链表表示队列,并且只设一个指针指向队尾结点,编写队列初始化、入队列和出队列算法StatusEnQueue(LinkQueue&T,QElemTypee){ //插入元素e为队列T的新的队尾元素 p=(QueuePtr)malloc(sizeof(QNode)); if(!p)exit(OVERFLOW); p->data=e;p->next=T.rear->next; T.rear->next=p; T.rear=p; returnOK:}//EnQueue3.28带头指针的循环链表表示队列,并且只设一个指针指向队尾结点,编写队列初始化、入队列和出队列算法StatusDeQueue(LinkQueue&T,QElemType&e){ //若队列不为空,删除队头元素用e返回,并返回OK //否则返回ERROR if(T.rear==T.rear->next)returnERROR; p=T.rear->next->next; e=p->data;T.rear->next->next=p->next; if(T.rear==p)T.rear=T.rear->next; free(p); returnOK;}2009(一、2)设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是
A.1
B.2
C.3
D.4
2010一1、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行。但不允许连续三次进行退栈工作,则不可能得到的出栈序列是(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某著名企业六局高层建筑铝合金模板施工技术
- 某著名企业外贸企业如何开某省市场
- 《GBT 16777-2008建筑防水涂料试验方法》专题研究报告
- 《GBT 4702.16-2008金属铬 硫含量的测定 红外线吸收法和燃烧中和滴定法》专题研究报告
- 道路安全培训季度计划课件
- 道路交通安全知识课件
- 2025-2026年西师版初三历史上册期末真题和答案
- 2025-2026年苏教版九年级化学上册期末题库试题附答案
- 返校安全规范培训
- 三年(2023-2025)黑龙江中考语文真题分类汇编:专题12 说明文阅读(解析版)
- 民办学校退费管理制度
- T/CIE 115-2021电子元器件失效机理、模式及影响分析(FMMEA)通用方法和程序
- KubeBlocks把所有数据库运行到K8s上
- 广东省江门市蓬江区2025年七年级上学期语文期末考试试卷及答案
- 苏州市施工图无障碍设计专篇参考样式(试行)2025
- 等腰三角形重难点题型归纳(七大类型)原卷版-2024-2025学年北师大版八年级数学下册重难点题型突破
- 临时用电变压器安装方案
- 社会工作项目调研方案含问卷及访谈提纲
- 2025年包头职业技术学院单招职业技能测试题库完整版
- 全国高校辅导员素质能力大赛试题(谈心谈话、案例分析)
- 《XXXX煤矿隐蔽致灾地质因素普查报告》审查意见
评论
0/150
提交评论