Infix Prefix Python Code
Infix Prefix Python Code
Stack=[]
Exp=[]
order={'(':1,')':1,'**':4,'//':3,'%':3,'/':3,'*':3,'+':2,'-':2}
def send(item,end=False):
if not end:
if item.isalpha():
Stack.append(item)
else:
if (not Exp) and item!='(':
Exp.append(item)
elif item==')':
Exp.reverse()
i=0
while i<len(Exp):
if Exp[i]!='(':
Stack.append(item)
print Exp
i+=1
else:
del Exp[i]
break
Exp.reverse()
elif order[Exp[-1]]>order[item]:
Stack.append(Exp[-1])
del Exp[-1]
Exp.append(item)
else:
Exp.append(item)
else:
Stack.append(item)
Exp.reverse()
for i in Exp:
Stack.append(i)
def printer(S):
#S is Stack
print ''.join(S)
def main():
global Stack
global Exp
while True:
a=raw_input('ENTER CHARACTER BASED INFIX EXPRESSION \n')
a=list(a)
#CONVERT TO LIST
for i in range(len(a)):
if i==len(a)-1:
send(a[i],True)
else:
send(a[i])
print 'FINAL EXPRESSION :'
printer(Stack)
Exp=[]
Stack=[]
q=raw_input('PRESS Q TO QUIT')
if q.upper()=='Q':
break
if __name__=='__main__':
main()