//Name : Pratik Patel //Roll No: 02CE048 //Subject: DSA //Program: To convert an eq into postfix including (,) #include #include void main() { clrscr(); char eq[50]; int i,j=0; char temp[50],answer[50]; int tos=0,prev_prec,prec; printf("\nEnter the Expression: "); scanf("%s",eq); temp[0]=eq[0]; tos++; if(eq[0]>='a'&&eq[0]<='z') { prev_prec=1; } else if(eq[0]=='(') { prev_prec=10; } for(i=1;eq[i]!='\0';i++) { if (eq[i]==')') { prec=9; } else if(eq[i]=='(') { prec=10; } else if(eq[i]=='+'||eq[i]=='-') { prec=3; } else if(eq[i]=='*'||eq[i]=='/') { prec=2; } else if(eq[i]>='a'&&eq[i]<='z') { prec=1; } check: if(prec='a'&&temp[tos]<='z') { prev_prec=1; } else if(temp[tos]=='(') { if(prec==9) { tos--; if(temp[tos]>='a'&&temp[tos]<='z') { prev_prec=1; } else if(temp[tos]=='+'||temp[tos]=='-') { prev_prec=3; } else if(temp[tos]=='*'||temp[tos]=='/') { prev_prec=2; } else if(temp[tos]=='(') { prev_prec=10; } } prev_prec=10; } else if(temp[tos]==')') { prev_prec=9; } tos++; goto check; } } } tos--; for(i=tos;i>=0;i--) { answer[j]=temp[i]; j++; } answer[j]='\0'; printf("\n"); for(i=0;answer[i]!='\0';i++) { if(answer[i]=='('||answer[i]==')') {} else printf("%c",answer[i]); } getch(); } /* OUTPUT Enter the infix expression:(((a-(b/c))-(d*e))+f) abc/-de*-f+ */