学习自《Java 数据结构与算法》第二版
前景概要:
不了解栈的概念请参考上一篇《用数组模拟栈结构,实现分隔符"{}"、"()"、"[]"的左右匹配检查》
1,中缀表达式:中缀表达式即我们平常使用的表达式形式 如:3+(4+5)
2,后缀表达式:后缀表达式也称逆序表达式,它是由波兰的一位数学家发明的,与中缀表达式不同的是
它将操作符跟在操作数的后面,例如:3+4 用后缀表达式表示就是 34+ ,在者,如1的后缀表达式为 345++
3,为什么使用后缀表达式?
中缀表达式在计算时要根据运算的优先级进行先后运算,转成后缀表达式后,计算机可以根据运算符出现的
前后顺序直接进行运算而不必再去讨论它的优先级,方便了计算机的计算,因为计算机习惯于从左至右的读取。
实现:
实现第一步:中缀转后缀(难点)
实现中缀转后缀的前提是要找到中缀转后缀过程中的规律。
人类在进行转换时可以直接跳过优先级低的计算优先级高的,当是计算机不行,计算机需要满足从左至右的规律进行计算,下面通过一个实例来演示计算机的处理过程:
模拟计算机转换A*(B+C)的过程:
分析:
解析 A 后缀(H):复制A
解析