一、前缀表达式
计算方法:
设两个栈,分别为数字栈和符号栈
每遇到一个符号,将其压栈,遇到一个数字,也压栈.如果发现数字栈中有数字,将数字栈首弹出,字符栈首弹出,和新的数运算。运算结果压入数字栈。
举个栗子:
+3×2+5 12
1.将+压入符号栈,符号栈首为+.将3压入数字栈,数字栈首为:3
2.将×压入符号栈,符号栈首为×。将2压入数字栈,此时3和2要进行运算:3×2=6,将6压入数字栈首
3.+号压入符号栈,符号栈首为+。将5压入数字栈,此时6(3×2)要与5进行运算:6+5=11,将11压入数字栈首。
4.12压入数字栈,此时数字栈首为12,此时12与11要进行运算(最开始的那个+),12+11=23
所以这个前缀表达式结果为23
二、中缀表达式
和平时的运算一样,详情见小学课本(我们看得懂但计算机看不懂)
举个栗子:
2*3+5+12
三、后缀表达式
和前缀表达式差不多,只不过变成从后往前扫。