栈实现后缀表达式求值代码实现
时间: 2023-10-31 11:05:10 浏览: 68
好的,以下是栈实现后缀表达式求值的代码实现:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def is_empty(self):
return len(self.items) == 0
def postfix_eval(postfix_expr):
operand_stack = Stack()
token_list = postfix_expr.split()
for token in token_list:
if token.isdigit():
operand_stack.push(int(token))
else:
operand2 = operand_stack.pop()
operand1 = operand_stack.pop()
result = do_math(token, operand1, operand2)
operand_stack.push(result)
return operand_stack.pop()
def do_math(op, op1, op2):
if op == "+":
return op1 + op2
elif op == "-":
return op1 - op2
elif op == "*":
return op1 * op2
else:
return op1 / op2
```
其中,Stack 类是一个栈的实现,postfix_eval 函数用于计算后缀表达式的值,do_math 函数用于执行加、减、乘、除操作。