数据结构——中缀表达式转后缀表达式、中缀转前缀表达式

一、中缀转后缀
1、从左往右扫描中缀表达式,如果是数字,写入结果表达式,如果是操作数,需要进一步判断
2、(1)如果是左括号’(’,直接入栈
(2)如果是运算符,(‘+’、‘-’、‘*’、‘/’),先判断栈顶的操作数的优先级,如果是左括号直接入栈,若如果是运算符,运算符优先级小于或等于栈顶运算符,将栈顶的运算符出栈,并将该运算符入栈
(3)如果是右括号,将栈中运算符依次出栈,括号不用写入结果表达式
(4)表达式扫描完了后,将栈中操作数依次出栈,并写入结果表达式就可以了。

下面是天勤数据结构视频中的一道例题:
数据结构——中缀表达式转后缀表达式、中缀转前缀表达式
二、中缀转前缀
步骤与前面基本一致,不过是从后往前扫描,中缀转前缀:当前读取运算符优先级小于栈顶则出栈;中缀转前缀:当前读取运算符优先级小于或等于栈顶运算符优先级则出栈

附图:
数据结构——中缀表达式转后缀表达式、中缀转前缀表达式