Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def infix_to_postfix(self):
- """
- function to generate postfix expression from infix expression
- """
- postfix = []
- for i in range(len(self.expression)):
- if self._isOperand(self.expression[i]):
- postfix.append(self.expression[i])
- elif self.expression[i] == '(':
- self.my_stack.push(self.expression[i])
- elif self.expression[i] == ')':
- top_operator = self.my_stack.pop()
- while not self.my_stack.is_empty() and top_operator != '(':
- postfix.append(top_operator)
- top_operator = self.my_stack.pop()
- else:
- while not self.my_stack.is_empty() and self._precedence(self.expression[i]) <= self._precedence(self.my_stack.peek()):
- postfix.append(self.my_stack.pop())
- self.my_stack.push(self.expression[i])
- while not self.my_stack.is_empty():
- postfix.append(self.my_stack.pop())
- return ' '.join(postfix)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement