版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章习题按图3.1(b)所示铁道(两侧铁道均为单向行驶道)进行车厢调度,回答:如进站的车厢序列为123,则可能得到的出站车厢序列是什么?如进站的车厢序列为123456,能否得到435612和135426的出站序列,并说明原因。(即写出以“S”表示进栈、以“X”表示出栈的栈操作序列)。设队列中有A、B、C、DE这5个元素,其中队首元素为A。如果对这个队列重复执行下列4步操作:(1)输出队首元素;(2)把队首元素值插入到队尾;(3)删除队首元素;(4)再次删除队首元素。直到队列成为空队列为止,得到输出序列:(1)A、C、E、C、C(2)A、C、E(3)A、C、E、C、C、C(4)A、C、E、C给
2、出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满?按照四则运算加、减、乘、除和幂运算(f)优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:ABC/D+EfF试写一个算法,判断依次读入的一个以为结束符的字母序列,是否为形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是属该模式的字符序列,而1+3&31则不是。假设表达式由单字母变量和双目四则运算算符构成。试写一个算法,将一个通常书写形式且书写正确的表达式转换为逆波兰式。假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注
3、意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。要求循环队列不损失一个空间全部都能得到利用,设置一个标志域tag,以tag为0或1来区分头尾指针相同时的队列状态的空与满,请编写与此结构相应的入队与出队算法。简述以下算法的功能(其中栈和队列的元素类型均为int):(1)voidproc_1(StackS)inti,n,A255;n=0;while(!EmptyStack(S)n+;Pop(&S,&An);for(i=1;itop=-1表示栈空。判断栈S满:如果S-top=Stack_Size-1表示栈满。(2)链栈(top为栈顶指针,指向当前栈顶元素前面的头结点)判断栈空:如果to
4、p-next=NULL表示栈空判断栈满:当系统没有可用空间时,申请不到空间存放要进栈的元素,此时栈满3.4照四则运算加、减、乘、除和幕运算的优先惯例,画出对下列表达式求值时操作数栈和运算符栈的变化过程:A-B*C/D+EfF【解答】OVSOPTROVSOPTR,+,=OPTR,1VV生成A-T(2)0TA,+OPTF?7,生成T(1)/DOVSOPTROVSOPTR运算结果TT(3)运算结果T(2)ovsOPTR右边畀生成T(2)+T右边界PTR;t1生成EtF运算结果T(4)OVS运算结果T(5)OVSOPTR3.5写一个算法,判断依次读入的一个以为结束符的字母序列,是否形如序列1&序列2的
5、字符序列。序列1和序列2中都不含&,且序列2是序列1的逆序列。例如,a+b&b+a是属于该模式的字符序列,而1+3&3则不是。解答】算法如下:intIsHuiWen()Stack*S;Charch,temp;InitStack(&S);Printf(n请输入字符序列:”);Ch=getchar();While(ch!=&)/*序列1入栈*/Push(&S,ch);ch=getchar();do/*判断序列2是否是序列1的逆序列*/ch=getchar();Pop(&S,&temp);if(ch!=temp)/*序列2不是序列1的逆序列*/return(FALSE);printf(n“NO”);
6、while(ch!=while(ch!=&!IsEmpty(&S)if(ch=&IsEmpty(&S)return(TRUE);printf(n“YES”);/*序列2是序列1的逆序列*/elsereturn(FALSE);printf(n“NO”);/*IsHuiWen()*/3.8要求循环队列不损失一个空间全部都能得到利用,设置一个标志tag,以tag为0或1来区分头尾指针相同时的队列状态的空与满,请编写与此相应的入队与出队算法。【解答】入队算法:intEnterQueue(SeqQueue*Q,QueueElementTypex)/*将元素x入队*/if(Q-front=Q-front&
7、tag=1)/*队满*/return(FALSE);if(Q-front=Q-front&tag=0)/*x入队前队空,x入队后重新设置标志*/tag=1;Q-elememtQ-rear=x;Q-rear=(Q-rear+1)%MAXSIZE;/*设置队尾指针*/Return(TRUE);出队算法:intDeleteQueue(SeqQueue*Q,QueueElementType*x)/*删除队头元素,用x返回其值*/if(Q-front=Q-rear&tag=0)/*队空*/return(FALSE);*x=Q-elementQ-front;Q-front=(Q-front+1)%MAXS
8、IZE;/*重新设置队头指针*/if(Q-front=Q-rear)tag=0;/*队头元素出队后队列为空,重新设置标志域*/Return(TUUE);编写求解Hanoi问题的算法,并给出三个盘子搬动时的递归调用过程。【解答】算法:voidhanoi(intn,charx,chary,charz)/*将塔座X上按直径由小到大且至上而下编号为1到n的n个圆盘按规则搬到塔座Z上,Y可用做辅助塔座*/if(n=1)move(x,1,z);elseHanoi(n-1,x,z,y);move(x,n,z);Hanoi(n-1,y,x,z);Hanoi(3,A,B,C)的递归调用过程:Hanoi(2,A,
9、C,B):Hanoi(1,A,B,C)move(A-C)1号搬到CMove(A-B)2号搬到BHanoi(1,C,A,B)move(C-B)1号搬到BMove(A-C)3号搬到CHanoi(2,B,A,C)Hanoi(1,B,C,A)move(B-A)1号搬到AMove(B-C)2号搬到CHanoi(1,A,B,C)move(A-C)1号搬到C提示:第3章限定性线性表栈和队列习题按图3.1(b)所示铁道(两侧铁道均为单向行驶道)进行车厢调度,回答:如进站的车厢序列为123,则可能得到的出站车厢序列是什么?123、213、132、231、321(312)如进站的车厢序列为123456,能否得到4
10、35612和135426的出站序列,并说明原因。(即写出以“S”表示进栈、以“X”表示出栈的栈操作序列)。SXSSXSSXXXSX或S1X1S2S3X3S4S5X5X4X2S6X6设队列中有A、B、C、D、E这5个元素,其中队首元素为A。如果对这个队列重复执行下列4步操作:1)输出队首元素;2)把队首元素值插入到队尾;3)删除队首元素;4)再次删除队首元素。直到队列成为空队列为止,则是否可能得到输出序列:(1)A、C、E、C、C(2)A、C、E(3)A、C、E、C、C、C(4)A、C、E、C提示:A、B、C、D、E(输出队首元素A)A、B、C、D、E、A(把队首元素A插入到队尾)B、C、D、E
11、、A(删除队首元素A)C、D、E、A(再次删除队首元素B)C、D、E、A(输出队首元素C)C、D、E、A、C(把队首元素C插入到队尾)D、E、A、C(删除队首元素C)E、A、C(再次删除队首元素D)给出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满?按照四则运算加、减、乘、除和幕运算(f)优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:ABC/D+EfF试写一个算法,判断依次读入的一个以为结束符的字母序列,是否为形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是属该模式的字符序列,而1
12、+3&31则不是。提示:(1)边读边入栈,直到&(2)边读边出栈边比较,直到假设表达式由单字母变量和双目四则运算算符构成。试写一个算法,将一个通常书写形式(中缀)且书写正确的表达式转换为逆波兰式(后缀)。提示:例:中缀表达式:a+b后缀表达式:ab+中缀表达式:a+bxc后缀表达式:abcx+中缀表达式:a+bxc-d后缀表达式:abcx+d-中缀表达式:a+bxc-d/e后缀表达式:abcx+de/-中缀表达式:a+bx(c-d)-e/f后缀表达式:abcd-x+ef/-后缀表达式的计算过程:(简便)顺序扫描表达式,(1)如果是操作数,直接入栈;(2)如果是操作符op,则连续退栈两次,得操作
13、数X,Y,计算XopY,并将结果入栈。如何将中缀表达式转换为后缀表达式?顺序扫描中缀表达式,(1)如果是操作数,直接输出;(2)如果是操作符op?,则与栈顶操作符opi比较:如果0P2opi,贝S0P2入栈;如果op2=op1,则脱括号;如果op2opi,则输出opi;假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。提示:参先画图.typedefLinkListCLQueue;intInitQueue(CLQueue*Q)intEnterQueue(CLQueueQ,QueueElementTypex)intD
14、eleteQueue(CLQueueQ,QueueElementType*x)要求循环队列不损失一个空间全部都能得到利用,设置一个标志域tag,以tag为0或i来区分头尾指针相同时的队列状态的空与满,请编写与此结构相应的入队与出队算法。提示:初始状态:front=0,rear=0,tag=0队空条件:front=rear,tag=0队满条件:front=rear,tag=1其它状态:front匸rear,tag=0(或1、2)入队操作:(入队)if(front=rear)tag=1;(或直接tag=1)出队操作:(出队)tag=0;问题:如何明确区分队空、队满、非空非满三种情况?简述以下算法的
15、功能(其中栈和队列的元素类型均为int):(1)voidproc_1(StackS)inti,n,A255;n=0;while(!EmptyStack(S)n+;Pop(&S,&An);for(i=1;i=n;i+)Push(&S,Ai);将栈S逆序。(2)voidproc_2(StackS,inte)StackT;intd;InitStack(&T);while(!EmptyStack(S)d);Pop(&S,&d);if(d!=e)Push(&T,while(!EmptyStack(T)Pop(&T,&d);Push(&S,d);删除栈S中所有等于e的元素。3)voidproc_3(Que
16、ue*Q)StackS;intd;InitStack(&S);while(!EmptyQueue(*Q)DeleteQueue(Q,&d);Push(&S,d);while(!EmptyStack(S)Pop(&S,&d);EnterQueue(Q,d)将队列Q逆序。实习题1回文判断。称正读与反读都相同的字符序列为“回文”序列。试写一个算法,判断依次读入的一个以为结束符的字母序列,是否为形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是属该模式的字符序列,而1+3&31则不是。2.停车场管理。设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。试编写程序,模拟上述管理过程。要求以顺序栈模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州医科大学校本部公开招聘工作人员备考题库及一套答案详解
- 基于区块链的电子合同管理与纠纷解决机制研究课题报告教学研究课题报告
- 通山县经济开发投资有限公司2025年公开招聘工作人员备考题库及参考答案详解一套
- 2025年贵州盐业(集团)有限责任公司贵阳分公司公开招聘工作人员6人备考题库及参考答案详解一套
- 2025年河南平煤神马平绿置业有限责任公司公开招聘备考题库带答案详解
- 2025年北医三院妇产科妇科门诊医师招聘备考题库及一套完整答案详解
- 2025年北京林业大学候鸟迁飞通道国际科教联盟秘书处招聘备考题库及完整答案详解一套
- 2026年云浮市新兴县“百万英才汇南粤”招聘教育人才40人备考题库及参考答案详解1套
- 2025年河池市人民医院招聘77人备考题库及一套完整答案详解
- 2025年城厢区常太镇卫生院招聘备考题库及参考答案详解
- 护肤销售技巧培训大纲
- 土地改良合同范本
- 煤矿安全隐患排查及整改措施
- 2025年怀集县事业单位联考招聘考试真题汇编附答案
- 房开装潢合同范本
- (新教材)2026年人教版八年级下册数学 24.2 数据的离散程度 课件
- 急性肾损伤教学课件
- 判决书不公开申请书模板
- Unit 5 The weather and us Part B Let's talk 课件 2025-2026学年人教PEP版英语四年级上册
- 2025年秋苏教版(新教材)小学科学三年级上册期末模拟试卷及答案
- 伟大祖国的认同课件
评论
0/150
提交评论