栈的应用——三种表达式的转换

时间:2024-03-26 09:19:08

1.表达式有三种:前缀式、中缀式、后缀式
例:a+b-a*((c+d)/e-f)+g
栈的应用——三种表达式的转换
2.中缀式转后缀式:
(1)从左往右,遇到运算符栈为空直接入栈,不为空与栈顶运算符比较,若优先顺序<=栈顶元素,栈顶运算符出栈。若>则入栈。
(2)遇到左括号直接入栈,遇到右括号则进行一系列出栈,从前一个左括号到栈顶元素出栈,并将符号写到表达式中,括号丢掉。
3.中缀式转前缀式:
与中缀式转后缀式类似,不同之处有:
(1)从右往左扫描
(2)右括号入栈,左括号出栈
(3)<= 改为 <
4.后缀式转前缀式:
从前往后,例:
后缀式:ab+acd+e/f-*-g+
前缀式:
栈的应用——三种表达式的转换
中缀式转后缀式代码:
栈的应用——三种表达式的转换