Question: My code currently only accepts and evaluates a postfix expression. How to covert it so it only takes prefix expressions? from stack import * def

My code currently only accepts and evaluates a postfix expression. How to covert it so it only takes prefix expressions?

from stack import *

def postfix(exp): expList = exp.split(" ") stack = Stack() for item in expList: if item == "+": x1 = stack.pop() x2 = stack.pop() stack.push(x2 + x1)

elif item == "-": x1 = stack.pop() x2 = stack.pop() stack.push(x2 - x1) elif item == "*": x1 = stack.pop() x2 = stack.pop() stack.push(x2 * x1)

elif item == "/": x1 = stack.pop() x2 = stack.pop() stack.push(x2 / x1)

else: num = int(item) stack.push(num)

return stack.pop()

print("Format: 4 6 + 2 / -1 * 7 + 7 +") exp = input("Please enter postfix expression: ")

# Stack.py class Stack: #------------------------------------------------------------ def __init__(self): '''post: creates an empty LIFO stack''' self.items = [] #------------------------------------------------------------ def push(self, item): '''post: places x on top of the stack''' self.items.append(item) #------------------------------------------------------------ def pop(self): '''post: removes and returns the top element of the stack''' return self.items.pop() #------------------------------------------------------------ def top(self): '''post: returns the top element of the stack without removing it''' return self.items[-1] #------------------------------------------------------------ def size(self): '''post: returns the number of elements in the stack''' return len(self.items)

My code currently only accepts and evaluates a postfix expression. How to

from stack import def postfix (exp) expList exp . split(" stack Stack ( ) for item in expList: ") if item"+": x1 = stack.pop ( ) x2 stack.pop ( ) stack.push (x2 + xl) elif item- x1 = stack.pop ( ) x2 stack.pop ( ) stack.push (x2 - xl) elif tem == xl - 3tack.pop () x2 stack.pop ( ) stack.push (x2 * xl) '" * " : elif item " x1 = stack.pop ( ) x2 - stack.pop) stack.push (x2 / xl) else: num = int (item) stack.push (num) return stack.pop () exp input ("Please enter postfix expression: total postfix (exp ) print (total) ")

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!