Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. class Stack:
  2. def __init__(self):
  3. self.items = []
  4.  
  5. def isEmpty(self):
  6. return self.items == []
  7.  
  8. def push(self, item):
  9. self.items.append(item)
  10.  
  11. def pop(self):
  12. return self.items.pop()
  13.  
  14. def peek(self):
  15. return self.items[len(self.items)-1]
  16.  
  17. def size(self):
  18. return len(self.items)
  19.  
  20. def obr_polsk_zap(virajenie):
  21. prociduri = {}
  22. prociduri["*"] = 3
  23. prociduri["/"] = 3
  24. prociduri["+"] = 2
  25. prociduri["-"] = 2
  26. prociduri["("] = 1
  27. myStack = Stack()
  28. s1 = []
  29. virajenie_list = virajenie.split()
  30.  
  31. for elem_viraj in virajenie_list:
  32. if elem_viraj in "1 2 3 4 5 6 7 8 9 10":
  33. s1.append(elem_viraj)
  34. elif elem_viraj == '(':
  35. myStack.push(elem_viraj)
  36. elif elem_viraj == ')':
  37. verh_elem_viraj = myStack.pop()
  38. while verh_elem_viraj != '(':
  39. s1.append(verh_elem_viraj)
  40. verh_elem_viraj = myStack.pop()
  41. else:
  42. while (not myStack.isEmpty()) and (prociduri[myStack.peek()] >= prociduri[elem_viraj]):
  43. s1.append(myStack.pop())
  44. myStack.push(elem_viraj)
  45.  
  46. while not myStack.isEmpty():
  47. s1.append(myStack.pop())
  48. return " ".join(s1)
  49.  
  50. print(obr_polsk_zap(" ( ( 5 + 2 * ( 8 + 4 * 2 ) ) * 7 ) "))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement