今日学习了栈,栈的主要应用就是实现求解表达式,我们首先来理解一下栈求解表达式的原理:
栈的原理是先进来的先出去:
(上面为手绘,丑陋莫要建议,嘻嘻)进去的顺序为a,b,c,出来的顺序为c,b,a
中缀转后缀原理:
遇到数字放一边,遇到符号入栈,入栈规则是:如果栈顶的符号的优先级小于目标优先级,则目标优先级入栈:
求解原理:首先将后缀表达式按顺序入栈,符号出栈,计算符号下面的两个数并将结果入栈,最后留下的数字是求解结果
python代码:
```python
# 用python实现ADT Stack
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek