Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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(self):
- return self.items[len(self.items)-1]
- def size(self):
- return len(self.items)
- def obr_polsk_zap(virajenie):
- prociduri = {}
- prociduri["*"] = 3
- prociduri["/"] = 3
- prociduri["+"] = 2
- prociduri["-"] = 2
- prociduri["("] = 1
- myStack = Stack()
- s1 = []
- virajenie_list = virajenie.split()
- for elem_viraj in virajenie_list:
- if elem_viraj in "1 2 3 4 5 6 7 8 9 10":
- s1.append(elem_viraj)
- elif elem_viraj == '(':
- myStack.push(elem_viraj)
- elif elem_viraj == ')':
- verh_elem_viraj = myStack.pop()
- while verh_elem_viraj != '(':
- s1.append(verh_elem_viraj)
- verh_elem_viraj = myStack.pop()
- else:
- while (not myStack.isEmpty()) and (prociduri[myStack.peek()] >= prociduri[elem_viraj]):
- s1.append(myStack.pop())
- myStack.push(elem_viraj)
- while not myStack.isEmpty():
- s1.append(myStack.pop())
- return " ".join(s1)
- print(obr_polsk_zap(" ( ( 5 + 2 * ( 8 + 4 * 2 ) ) * 7 ) "))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement