1 | #include<stdio.h> | ||||
2 | void infixtopostfix(char[],char[]); | ||||
3 | int precedence(char); | ||||
4 | void main() | ||||
5 | { | ||||
6 | char infix[20],postfix[20]; | ||||
7 | //clrscr(); | ||||
8 | printf("\n Enter the Infix_experssion : "); | ||||
9 | scanf("%s",infix); | ||||
10 | infixtopostfix(infix,postfix); | ||||
11 | printf("\nPostfix_expression is : %s",postfix); | ||||
12 | } | ||||
13 | void infixtopostfix(char infix[],char postfix[]) | ||||
14 | { | ||||
15 | char s[20],symbol; | ||||
16 | int top=-1,i=0,j=0; | ||||
17 | while(infix[i]!='\0') | ||||
18 | { | ||||
19 | symbol=infix[i]; | ||||
20 | switch(symbol) | ||||
21 | { | ||||
22 | case '(': ++top; | ||||
23 | s[top]=symbol; | ||||
24 | break; | ||||
25 | case ')': while(s[top]!='(') | ||||
26 | { | ||||
27 | postfix[j++]=s[top]; | ||||
28 | top--; | ||||
29 | } | ||||
30 | top--; | ||||
31 | break; | ||||
32 | case '+': | ||||
33 | case '-': | ||||
34 | case '*': | ||||
35 | case '^': | ||||
36 | case '/': | ||||
37 | while(precedence(symbol)<=precedence(s[top])&&top!=-1) | ||||
38 | postfix[j++]=s[top--]; | ||||
39 | s[++top]=symbol; | ||||
40 | break; | ||||
41 | default:postfix[j++]=symbol; | ||||
42 | } | ||||
43 | i++; | ||||
44 | } | ||||
45 | while(top!=-1) | ||||
46 | { | ||||
47 | postfix[j++]=s[top]; | ||||
48 | top--; | ||||
49 | } | ||||
50 | postfix[j]='\0'; | ||||
51 | } | ||||
52 | int precedence(char x) | ||||
53 | { | ||||
54 | switch(x) | ||||
55 | { | ||||
56 | case '+': | ||||
57 | case '-': return(1); | ||||
58 | case '*': | ||||
59 | case '^': return(3); | ||||
60 | case '/': return(2); | ||||
61 | default: return(0); | ||||
62 | } | ||||
63 | } | ||||
Output: | |||||
Enter the Infix_experssion : a+b*c | |||||
Post fix_expression is : abc*+ | |||||
Enter the Infix_experssion : a+(b+c*d)*f | |||||
Post fix_expression is : abcd*+f*+ | |||||
Enter the Infix_experssion : a+(b*c+d)*f | |||||
Post fix_expression is : abc*d+f*+ | |||||
Enter the Infix_experssion : a*(b*c+d)+f | |||||
Post fix_expression is : abc*d+*f+ |
C Program for Infix to Postfix Equivalent
Share to other apps