顺序栈实现算术表达式
时间: 2024-06-12 17:10:23 浏览: 86
利用栈进行算术表达式的运算
5星 · 资源好评率100%
顺序栈可以用来实现算术表达式的计算。具体实现方法如下:
1. 定义一个栈,用于存储操作数和运算符。
2. 从左到右扫描表达式,遇到操作数则入栈,遇到运算符则将栈顶的两个操作数出栈进行运算,并将结果入栈。
3. 最终栈中只剩下一个元素,即为表达式的计算结果。
以下是一个示例代码:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
def peek(self):
if not self.is_empty():
return self.items[-1]
def calculate(expression):
stack = Stack()
for char in expression:
if char.isdigit():
stack.push(int(char))
else:
num2 = stack.pop()
num1 = stack.pop()
if char == '+':
stack.push(num1 + num2)
elif char == '-':
stack.push(num1 - num2)
elif char == '*':
stack.push(num1 * num2)
elif char == '/':
stack.push(num1 / num2)
return stack.pop()
expression = '3+4*5-6/2'
result = calculate(expression)
print(result) # 输出 20.0
```
阅读全文