每天进步一点点之中缀表达式转后缀表达式

Posted lixiangfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天进步一点点之中缀表达式转后缀表达式相关的知识,希望对你有一定的参考价值。

1,个人理解前缀、中缀、后缀表达式应该对应着树的前序遍历、中序遍历和后序遍历。

2,中缀表达式更方便人类理解,后缀表达式因为其堆栈结构更方便计算机理解,这就像计算机组成原理中的补码和源码一样,补码更方便计算机计算,源码更方便人类看懂,也可以用二进制和十进制对比,为什么计算机整个框架建立在二进制的基础上,就是机器相比于人类,更容易理解二进制的逻辑,二进制对机器来说更加高效。或许我们可以认为计算机就是建立在堆栈和二进制的基础上的。

中缀表达式转后缀表达式,考研选择题题目中更多的是让我们将中缀表达式转为后缀表达式,不免要用到栈的特性。

前提:需要一个辅助栈

步骤:

1,从左往右遍历表达式,遇到数字直接输出,遇到左括号直接入栈。

2,遇到操作符,如果其比栈顶操作符优先级高,直接入栈;否则,出栈输出,直到遇到比此操作符低优先级的操作符,如果当前操作符是右括号,栈中元素依次出栈,直到遇到左括号。(左括号比任何操作符优先级都低,右括号比任何操作符优先级都高,只有遇到了右括号,栈中的左括号才会出栈丢弃(不输出))。

3,如果到达表达式末尾,将栈中所有元素输出,直到栈空。

原则:

1,后缀表达式无左右括号

2,操作符相对于其对应操作数,必然是在后面

以上是关于每天进步一点点之中缀表达式转后缀表达式的主要内容,如果未能解决你的问题,请参考以下文章

《C#零基础入门之百识百例》(八十五)系统类Stack栈解析 -- 简单中缀表达式转后缀表达式

《C#零基础入门之百识百例》(八十五)系统类Stack栈解析 -- 简单中缀表达式转后缀表达式

数据结构中缀表达式转后缀表达式以及后缀转中缀表达式

JAVA数据结构与算法之栈~ 中缀表达式转换为后缀表达式

数据结构之栈—强大的四则复杂运算计算器(媲美windows自带的科学计算器)中缀转后缀表达式

中缀表达式转后缀表达式详解