I can't find any solution to change my output into a table in Python. Can someone help? Thanks. I've try search for Python Lists Modul, but it doesn't help. I didn't find any suggestion to input the postfix answer into the table.
def infixToPostfix(infixexpr):
tingkatan_operator = {}
tingkatan_operator["^"] = 4
tingkatan_operator["*"] = 3
tingkatan_operator["/"] = 3
tingkatan_operator["+"] = 2
tingkatan_operator["-"] = 2
tingkatan_operator["("] = 1
operator_stack = []
postfix_list = []
for token in infixexpr:
if token in "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" or token in "0123456789":
postfix_list.append(token)
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
elif token == "(":
operator_stack.append(token)
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
elif token == ")":
topToken = operator_stack.pop()
while topToken != "(":
postfix_list.append(topToken)
topToken = operator_stack.pop()
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
elif token == ";":
topToken = operator_stack.pop()
if token != ")":
postfix_list.append(topToken)
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
else :
while (len(operator_stack)!=0) and (tingkatan_operator[operator_stack[-1]] >= tingkatan_operator[token]):
postfix_list.append(operator_stack.pop())
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
operator_stack.append(token)
while (len(operator_stack)!=0):
postfix_list.append(operator_stack.pop())
print (" Stack : ",operator_stack)
if operator_stack == []:
print (" Top : ")
else :
print (" Top : ",operator_stack[-1])
print (" Output : ",postfix_list)
print ()
return "".join(postfix_list)
} tingkatan means 'level'
print ()
print (" PROGRAM INFIX TO POSTFIX ")
print ()
def menu():
infix1 = (input(" PUT YOUR INFIX HERE : "))
print()
infix = list(infix1.replace(" ", ""))
Postfix = infixToPostfix(infix)
print()
print(" Postfix from ",infix1," is ",Postfix)
print()
n = input(" Wanna go again? (Y/N):")
if n in ["Y","y"]:
print()
menu()
elif n in ["N","n"]:
exit()
menu()
I think this is a really good programs for convert infix to postfix. But my lecture wanted me to change it the output into a table. Im so glad that you can help me. Thanks