首页 > 编程知识 正文

中缀转后缀的技术难点有哪些,后缀转前缀的思路

时间:2023-05-06 00:55:53 阅读:39814 作者:4778

中缀转后缀

本文大部分资料参考了慕课撒娇的西牛老师的数据结构

的慕课链接:公式述评

骑马订公式是最常用的算术公式,运算符在运算数中间,运算需要考虑运算符优先级

后缀表达式是一种易于在计算机上计算的表达式,从左到右计算为运算符在运算数后面,从左到右计算为无需考虑优先级线性结构

首先,让我举一个简单的转变例子

2 9/3-5(前缀)-2 )9/5) (后缀) )。

做乘除后加减运算规律,运算数位置不变,改变的是运算符位置

可以推送堆栈实现,存储堆栈中等待的运算符。

将当前运算符与最后一个等待的运算符进行比较。

直接输出3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/,然后将. http://www.Sina.com /直接推入堆栈。 (括号无需以最高优先级进行比较) ) ) ) ) ) ) ) )。 验证其他符号是否已成功堆栈(3358www.Sina.com/,) (意味着括号已结束) )一个接一个弹出堆栈顶部运算符,输出到遇到左括号),但不输出) 3358 www

如果是具体转换方式:,则推入堆栈(还不能进行这部分的运算),

对于1.从左到右进行遍历,请弹出堆栈顶部运算符并将其输出,以比较新的堆栈顶部运算符。

(低于弹出窗口意味着能够运算前面的部分,因为首先输出的一定是高优先级运算符,以与弹出窗口相同的优先级从左向右进行运算)

在优先级大于堆栈顶部运算符或堆栈空值后,将运算符放入堆栈.2.运算数处理完成后,堆栈中的所有运算符将按顺序弹出并输出。

让我来说明第一个简单的例子

3.左括号的运算

慕课选择撒娇的西牛老师的案例入栈后优先级降到最低

(保存在堆栈中)

从左向右,遇到运算符时弹出对应的运算数,运算后将结果放入堆栈中。最终结果是堆栈顶部数的值。

(因为此运算是线性结构,所以在具体运算时不需要保存输出后的运算符,一般只输出一个运算符就进行一次运算,不需要如图所示保存输出状态。 (4.右括号

’-’(负号)可能是单眼运算符,修改运算数。

遇到幂运算等其他运算符也是如此。

这篇文章只是整理了骑马订式向后缀式的转换方法和理论,目的是为了理解。

具体代码的实现看我的另一篇文章(模拟式运算)。

对于初学者来说,这一部分的转换可能很模糊,因此建议观看链接到开头的视频。

如果有什么错误或不足,欢迎评论。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。