![中缀后缀互相转换_76350543201611217525565分析_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/46068a2e-b8c1-42d9-bba9-a9760bafea64/46068a2e-b8c1-42d9-bba9-a9760bafea641.gif)
![中缀后缀互相转换_76350543201611217525565分析_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/46068a2e-b8c1-42d9-bba9-a9760bafea64/46068a2e-b8c1-42d9-bba9-a9760bafea642.gif)
![中缀后缀互相转换_76350543201611217525565分析_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/46068a2e-b8c1-42d9-bba9-a9760bafea64/46068a2e-b8c1-42d9-bba9-a9760bafea643.gif)
![中缀后缀互相转换_76350543201611217525565分析_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/46068a2e-b8c1-42d9-bba9-a9760bafea64/46068a2e-b8c1-42d9-bba9-a9760bafea644.gif)
![中缀后缀互相转换_76350543201611217525565分析_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/46068a2e-b8c1-42d9-bba9-a9760bafea64/46068a2e-b8c1-42d9-bba9-a9760bafea645.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中缀后缀互相转换符号说明 为了表示简便,程序中符号如下 , 非 v,或 , 与 , 推出 =, 等价中缀转后缀将中缀表达式转换为后缀将中缀表达式转换为后缀表达式表达式 (1) 初始化两个栈:运算符栈S1和储存中间结果的队列S2; (2) 从左至右扫描中缀表达式; (3) 遇到操作数时,将其压入S2; (4) 遇到运算符时,比较其与S1栈顶运算符的优先级: (4-1) 如果S1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈; (4-2) 否则,若优先级比栈顶运算符的高,也将运算符压入S1 (注意转换为前缀表达式时是优先级较高或相同,而这里则 不包括相同的情况); (4-3) 否则,将S1
2、栈顶的运算符弹出并压入到S2中,再次转到(4-1)与S1中新的栈顶运算符相比较;中缀转后缀 (5) 遇到括号时: (5-1) 如果是左括号“(”,则直接压入S1; (5-2) 如果是右括号“)”,则依次弹出S1栈顶的运算符,并压入S2,直到遇到左括号为止,此时将这一对括号丢弃; (6) 重复步骤(2)至(5),直到表达式的最右边; (7) 将S1中剩余的运算符依次弹出并压入S2; (8) 依次弹出S2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式(转换为前缀表达式时不用逆序)。中缀转后缀 例1 PvQ(R=T) 输出:PQRT= v扫描到的元素S1(栈底-栈顶)S2(队头-队尾)说明
3、P空P命题符号,直接入队列vvPS1为空,运算符直接入栈QvPQ命题符号,直接入队列vPQv优先级小于,运算符直接入栈(v(PQ左括号直接入栈S1Rv(PQR命题符号,直接入队列=v(“=”PQRS1栈顶是左括号,直接入栈Tv(“=”PQRT命题符号,直接入队列)vPQRT=右括号,弹出运算符直至遇到左括号到达最右端空PQRT=vS1中剩余的运算符中缀转后缀 例2 (Pv(QvR)v(SvT) 输出: PQRvvSTvv 扫描到的元素扫描到的元素S1(栈底栈底-栈顶栈顶)S2(队头队头-队尾队尾)说明说明(空左括号直接入栈S1P(P命题符号,直接入队列v(vPS1栈顶是左括号,直接入栈(v(P
4、左括号直接入栈S1Q(v(PQ命题符号,直接入队列v(v(vPQS1栈顶是左括号,直接入栈R(v(vPQR命题符号,直接入队列)(vPQRv右括号,弹出运算符直至遇到左括号)空PQRvv右括号,弹出运算符直至遇到左括号vvPQRvvS1为空,运算符直接入栈(v(PQRvv左括号直接入栈S1Sv(PQRvvS命题符号,直接入队列vv(vPQRvvSS1栈顶是左括号,直接入栈Tv(vPQRvvST命题符号,直接入队列)vPQRvvSTv右括号,弹出运算符直至遇到左括号达到最右端空PQRvvSTvvS1中剩余的运算符后缀转中缀将后缀表达式转换为前缀表达式,遵循以下步骤: 定义类型Expr,Expr类
5、型的变量表示一个表达式,它有两个属性: Expr.e,表示表达式的字符串 Expr.o,将表达式转化为后缀表达时,最右侧的运算符 将输入的表达式每一个变量和运算符都转化为Expr变量,e属性即为变量或者运算符的字符,运算符的o属性就是它本身。 处理之后的表达式为 e1 e2 e3 . en后缀转中缀 1)从左向右扫描 2)当ei为运算符时,考察它左侧的两个变量ei-2和ei-1: 如果ei-1.o的优先级小于ei.o,则ei-1的表达式左右加括号,即ei-1.e = (ei-1.e) 对ei-2进行同样判断 将三者合并为新的Expr变量s,其中s s.e = ei-2.e ei.e ei-1.e s.o = ei.o 3)最后一个变量扫描完毕之后,整个序列只剩下一个Expr变量e,其e属性即为我们需要的中缀表示。后缀转中缀 例1 PQRT= 输出:PQ(R=T)扫描位置坐标扫描位置坐标公式公式0P Q R T = 1P Q R T = 2P Q R T = 3P Q R T = 4P Q R T = 3P Q R=T 2P Q(R=T) PQ(R=T)后缀转中缀 例2 PQRST 输出: (P(QR)(ST)扫描位置坐标扫描位置坐标公式公式0P Q R S T 1P Q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业科技园建设投资合同
- 装修简易简单的合同书范本
- 监控设备安装合同书范本
- 购销合同范例
- 劳务用工安全协议书
- 幼儿园保安协议书
- 山东理工大学《矩阵理论(双语)》2023-2024学年第二学期期末试卷
- 送水购销合同范本
- 借款消费合同范本
- 工程款支付三方协议范本
- 中考英语语法填空专项练习附答案(已排版-可直接打印)
- 口腔医学中的人工智能应用培训课件
- 软星酒店网络规划与设计
- 自然辩证法概论(新)课件
- 基层医疗机构基本情况调查报告
- 六西格玛(6Sigma)详解及实际案例分析
- 机械制造技术-成都工业学院中国大学mooc课后章节答案期末考试题库2023年
- 电解槽检修施工方案
- 正常分娩 分娩机制 助产学课件
- 广东县级农商银行联社高管候选人公开竞聘笔试有关事项上岸提分题库3套【500题带答案含详解】
- 中国成人住院患者高血糖管理目标专家共识课件
评论
0/150
提交评论