版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章3.5假设s和x用于表示堆栈进入和堆栈退出操作,初始状态和最终状态为空的堆栈进入和堆栈退出操作序列可以表示为仅由s和x组成的序列。可操作的序列称为合法序列(例如,SXXSX是合法序列,SXS是非法序列)。本文试图给出一个通用的标准来区分给定序列与合法序列或非法序列,并证明两个不同的合法(堆栈操作)序列(对于相同的输入序列)不可能得到相同的输出元素(注意:在这种情况下,它指的是元素实体,而不是值)序列。解决方案:一般规则:任何前n个序列中的s的数目必须大于或等于x的数目,并且整个序列中的s的数目必须等于x的数目。证据:让两个法律序列:T1=SXST2=SXX假设前n个操作是相同的,并且从第
2、n个操作开始,它是具有不同序列的开始操作点。由于前n个操作是相同的,此时两个堆栈(堆栈A和堆栈B)的存储条件完全相同,假设堆栈的顶部元素此时都是A。第n个1操作是不同的,所以T1的第n个1操作是s,T2的第n个1操作是x。假设B是堆叠的,T1的输出顺序必须是先B后A;T2将是一个堆栈,它的输出顺序必须是先a后B.由于T1的输出是ba而T2的输出序列是ab这表明两个不同的合法堆栈操作序列的输出元素序列一定是不同的。3.9尝试将下面的递归过程重写为递归过程。void ditui(int n)int I;i=n。而(i1)coutxif(x=0)sum=0;其他测试(总和);sum=x;标准输出#包
3、括#定义STACK_INIT_SIZE 100#定义TURE 1#定义FALSE 0#定义ok 1#定义错误0#定义不可行-1typedef int selemtypetypedef int状态;typedef结构int * base2;selem type * top2;int stacksizesqstack。状态INITstack(sqstack * s)int * p;p=(selem type *)malloc(STACK _ INIT _ SIZE * sizeof(selem type);(*s)。基数0=(*s)。top0=p;(*s)。基数1=(*s)。top1=p STAC
4、K _ INIT _ SIZE-1;如果(!(*s)。基本0)出口(-2);如果(!(*s)。基地1)出口(-2);返回ok;状态推送(sqstack * s,int i,selemtype e)if(i=0)if(*)顶部0=(*)基本0 (STACK_INIT_SIZE/2)-1)返回错误;else *(s)。top0=e;返回ok;if(i=1)if(*)顶部1=(*)base1-(STACK_INIT_SIZE/2) 1)返回错误;else *(s)。top1-=e;返回ok;返回错误;状态弹出(sqstack * s,int i,selemtype * e)if(i=0(*s)。前0
5、=(* s)。base0返回错误;if(i=1(*s)。顶部1=(*)。base1)返回错误;if(i=0) * e=*(-(*)s)。top0);返回ok;if(i=1) * e=*(-(*)s)。top1);返回ok;void main()sqstack sta。selem type e;selem type * p;int I;如果(INITstack(sta) printf(“已创建双堆栈 n”);Printf(请输入推送结束(0/1)和推送元素: n );scanf(“% d % d”,即e);如果(推(sta,即e)打印(元素已堆叠);Printf(请输入推送结束(0/1)和推送元
6、素: n );scanf(“% d % d”,即e);如果(推(sta,即e)打印(元素已堆叠);Printf(请输入推送结束(0/1)和推送元素: n );scanf(“% d % d”,即e);如果(推(sta,即e)打印(元素已堆叠);Printf(左堆栈元素:);p=sta . base0;同时(sta.top0!=p)printf(“% d”,* p);p;Printf(右堆栈元素:);p=sta . base1;同时(sta.top1!=p)printf(“% d”,* p);p-;printf( n请输入堆栈结尾(0/1): n );scanf(“% d”,I);如果(Pop(s
7、ta,即e) printf(n堆栈顶部元素%d从堆栈中出来n ,e);Printf(左堆栈元素:);p=sta . base0;同时(sta.top0!=p)printf(“% d”,* p);p;Printf(右堆栈元素:);p=sta . base1;同时(sta.top1!=p)printf(“% d”,* p);p-;运行结果:3.21假设表达式由单字母变量和双目四个运算符组成。试着写一个算法,将正常书写和正确书写的表达式转换成相反的波兰表达式。解决方案:程序源代码:#包括#包括#定义尺寸100typedef char selemtypetypedef结构selemtype * bas
8、eselemtype * topint大小;堆栈;int优先(char c1,char c2)char ch5= #-*/;int i=0,j=0;如果(c1=()返回0;当(chi chi!=c1) i。如果(I=2)I-;/加和减可认为是同级别的运算符如果(I=4)I-;/乘和除可认为是同级别的运算符当chj chj!(C2)j;if(j=2)j-;if(j=4)j-;如果(ij)返回1;否则返回0;void main()堆栈无线电台临时使用许可证ch=0,CT;斯塔。base=(selem类型*)malloc(SIZE * SIZeof(selem类型);如果(!sta.base)出口(
9、0);斯塔。top=sta。基地;斯塔。大小=0;* sta。top=#;printf(请输入表达式: n );同时(ch!=#*sta.base=#)ch=getchar();如果(a=chch=z)printf(% c ,ch);其他if(ch=#)CT=*(-sta。顶部);同时(ct!=#)印刷字体( % c ,印刷字体);CT=*(-sta。顶部);-斯塔。顶部;其他if(ch=()* sta。top=ch其他if(ch=)CT=*(-sta。顶部);同时(ct!=()印刷字体( % c ,印刷字体);CT=*(-sta。顶部);否则CT=*(sta。top-1);如果(先验(ct,
10、ch)=0)* sta。top=ch否则CT=*(-sta。顶部);同时(优先(ct,ch)印刷字体( % c ,印刷字体);CT=*(-sta。顶部);*(sta.top)=ch .sta.top运行结果:3.22如题3.21的假设条件,试写一个算法,对以逆波兰式表示的表达式求值。解:程序源代码:#包括#包括#定义最大大小堆栈100#定义增量10#定义ok 1#定义错误-100typedef int elemtype2typedef int状态;typedef结构elemtype2 * topelemtype2 * baseint大小; stack2状态initstack2(stack2 da)爸爸。base=(elem类型2 *)malloc(max _
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东商务职业学院单招综合素质考试题库附答案详细解析
- 2026渤海银行昆明分行社会招聘备考题库(预热题)附答案详解
- 2026云南银卫达保安服务有限公司招聘法律顾问兼董事会秘书1人备考题库附完整答案详解(考点梳理)
- 2026湖北武汉刘三屋中医骨伤医院招聘49人备考题库含答案详解(a卷)
- 2026北京市政路桥股份有限公司招聘26人备考题库含答案详解(综合题)
- 2026广东云浮市郁南县招聘公益性岗位人员27人备考题库(第二轮)附参考答案详解【黄金题型】
- 2026江西新余开物金服科技有限公司招聘备考题库带答案详解(培优)
- 2026西藏日喀则定日县珠峰联村党委领办企业工作人员招聘2人备考题库附参考答案详解(能力提升)
- 2026北京城市副中心投资建设集团有限公司春季校园招聘25人备考题库附答案详解【满分必刷】
- 2026北京首华物业管理有限公司招聘2人备考题库含完整答案详解(夺冠)
- 2026年甘肃天水清水县选聘大学生村文书64人考试备考试题及答案解析
- 2026年山东东营市高三一模高考生物试卷试题(含答案)
- 2026辽宁沈阳汽车集团有限公司所属企业华亿安(沈阳)置业有限公司下属子公司招聘5人笔试备考题库及答案解析
- 2019年广西桂林市中考数学试卷
- 三月的桃花心中开混声合唱谱
- 智慧路灯综合解决方案
- 《大学生心理健康》教案-自我意识课件
- 500字作文标准稿纸A4打印模板-直接打印
- 生物化学英文版课件:Chapter 6 Enzyme catalysis
- 慢性病健康管理规范
- 检验检测机构质量手册程序文件质量记录合集(依据2023年版评审准则)
评论
0/150
提交评论