Postfix ev
🧩 Syntax:
#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;
}
void main()
{
char exp[20], x;
printf("Enter expression: ");
scanf("%s", exp);
printf("Postfix expression: ");
for (int i = 0; exp[i] != '\0'; i++)
{
if (isalnum(exp[i]))
printf("%c", exp[i]);
else if (exp[i] == '(')
push(exp[i]);
else if (exp[i] == ')')
{
while ((x = pop()) != '(')
printf("%c", x);
}
else
{
while (priority(stack[top]) >= priority(exp[i]))
printf("%c", pop());
push(exp[i]);
}
}
while (top != -1)
printf("%c", pop());
}