class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
if not self.isEmpty():
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)
#以下是主体部分:
def direct_cal(infix):#中缀转后缀函数
cal_class={"*":3,"/":3,"+":2,"-":2,"(":1}#定义运算优先级
list=infix.split()#将数学式转化为列表
numStack=Stack()#存放数字的Stack
opStack = Stack()#存放运算符号的Stack
for x in list:
if x in "0123456789101112131415161718192021222324252627282930":
numStack.push(int(x))
elif x=="(":
opStack.push(x)
elif x==")":
y=opStack.pop()
while not y=&
Python数算:前缀表达式的运算
最新推荐文章于 2024-04-12 01:28:46 发布