7-2 后缀式求值(一位整型操作数版)
时间: 2023-11-03 14:11:56 浏览: 118
后缀式求值是一种将表达式从中缀式转换为后缀式,并利用栈来计算表达式值的方法。一位整型操作数版指的是表达式中只有一个数字作为操作数。
算法步骤如下:
1. 初始化一个空栈
2. 从左到右扫描后缀表达式的每一项
3. 如果当前项是一个操作数,将其压入栈中
4. 如果当前项是一个运算符,弹出栈顶的两个操作数,进行该运算符的运算,并将结果压入栈中
5. 扫描完成后,栈中剩下的元素即为表达式的值
下面是伪代码实现:
```
function evaluatePostfix(expression):
stack = empty stack
for each token in expression:
if token is an operand:
push token onto stack
else if token is an operator:
operand2 = pop stack
operand1 = pop stack
result = evaluate expression (operand1, operand2, token)
push result onto stack
return pop stack
function evaluate expression (operand1, operand2, operator):
if operator is '+':
return operand1 + operand2
else if operator is '-':
return operand1 - operand2
else if operator is '*':
return operand1 * operand2
else if operator is '/':
return operand1 / operand2
```
例如,对于后缀表达式 "5 3 +",其求值过程如下:
1. 初始化一个空栈
2. 读入 "5",将其压入栈中
3. 读入 "3",将其压入栈中
4. 读入 "+",弹出栈顶的两个操作数 "3" 和 "5",进行加法运算得到 "8",将其压入栈中
5. 扫描完成后,栈中剩下唯一的元素 "8" 即为表达式的值
因此,该后缀表达式的值为 "8"。