I NFIX
I NFIX
#include <stdio.h>
#include <ctype.h>
char stack[20];
int top = -1;
void push(char x) {
stack[++top] = x;
}
char pop() {
if (top == -1) {
return -1;
} else {
return stack[top--];
}
}
int priority(char x) {
if (x == '(')
return 0;
if (x == '+' || x == '-')
return 1;
if (x == '*' || x == '/')
return 2;
if (x == '^')
return 3;
return -1; }
void main() {
char infix[20], *e, x;
printf("Enter the expression: ");
scanf("%s", infix);
e = infix;
while (*e != '\0') {
if (isalnum(*e)) {
printf("%c", *e);
} else if (*e == '(') {
push(*e);
} else if (*e == ')') {
while ((x = pop()) != '(') {
printf("%c", x);
}
} else {
while (top != -1 && priority(stack[top]) >= priority(*e)) {
printf("%c", pop());
}
push(*e);
}
e++;
}
OUTPUT
ubuntu@ubuntu-H81M-S:~/AshwinHarikumar-10$ ./a.out
Enter the expression: (2+2)*4/2
22+4*2/