王道408---中缀表达快速转前缀/后缀表达

标准做法是利用栈,但也存在取巧做法

参考王道408数据结构P95最下面,以及 https://blog.csdn.net/qq_22771739/article/details/88077977

 

转前缀的话,就是把符号放括号前. 

对于表达式,任意x缀表达式可以相互转化,如后缀表达式转中缀表达式:

假设我们有一个后缀表达式: 3 4 + 5 6 * -  
我们按照之前的方法进行计算: 
1. 遇到数字3,将其推入栈中: 3  
2. 遇到数字4,将其推入栈中: 3 4  
3. 遇到运算符+,从栈中弹出两个数字3和4,组合为 (3 + 4) ,将结果推入栈中: (3 + 4)  
4. 遇到数字5,将其推入栈中: (3 + 4) 5  
5. 遇到数字6,将其推入栈中: (3 + 4) 5 6  
6. 遇到运算符*,从栈中弹出两个数字5和6,组合为 (5 * 6) ,将结果推入栈中: (3 + 4) (5 * 6)  
7. 遇到运算符-,从栈中弹出两个数字 (3 + 4) 和 (5 * 6) ,组合为 ((3 + 4) - (5 * 6)) ,将结果推入栈中: ((3 + 4) - (5 * 6))  
最后,栈中的结果就是中缀表达式: ((3 + 4) - (5 * 6)) 。 
通过这个例子,我们可以看到,无论后缀表达式的复杂程度如何,我们都可以使用相同的方法来确定对应的中缀表达式。

 

posted @ 2023-08-04 16:25  TLSN  阅读(133)  评论(0编辑  收藏  举报