Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. def infix_to_postfix(self):
  2. """
  3. function to generate postfix expression from infix expression
  4. """
  5. postfix = []
  6. for i in range(len(self.expression)):
  7. if self._isOperand(self.expression[i]):
  8. postfix.append(self.expression[i])
  9. elif self.expression[i] == '(':
  10. self.my_stack.push(self.expression[i])
  11. elif self.expression[i] == ')':
  12. top_operator = self.my_stack.pop()
  13. while not self.my_stack.is_empty() and top_operator != '(':
  14. postfix.append(top_operator)
  15. top_operator = self.my_stack.pop()
  16. else:
  17. while not self.my_stack.is_empty() and self._precedence(self.expression[i]) <= self._precedence(self.my_stack.peek()):
  18. postfix.append(self.my_stack.pop())
  19. self.my_stack.push(self.expression[i])
  20.  
  21. while not self.my_stack.is_empty():
  22. postfix.append(self.my_stack.pop())
  23. return ' '.join(postfix)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement