算法: 中缀表达式->后缀表达式

解析:

作者:张一极

Date:20200928

定义优先级,括号的优先级最高

使用栈数据结构,分割要处理的字符串

循环遍历每个字符,如果是被处理元素(字母或者数字),则加入输出列表

如果是括号,则括号压栈,如果是反括号,则触发连续弹栈先取出栈顶元素,不断弹栈

直到取到另一个括号,如果不是括号也不是字母数字

则比较其优先级,如果栈顶优先级大于token的优先级

则弹出栈顶元素(先行计算),直到栈顶元素优先级小于token的优先级为止

最后所有字符都遍历一遍过后,检查栈是否为空,将剩余较低优先级的数据弹出.

Code:

Deffence:python-data-structure-cn