Skip to content

Instantly share code, notes, and snippets.

@heytulsiprasad
Created October 20, 2020 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heytulsiprasad/b50a7815a8415c272e3177da021f2ece to your computer and use it in GitHub Desktop.
Save heytulsiprasad/b50a7815a8415c272e3177da021f2ece to your computer and use it in GitHub Desktop.
Write a program for conversion from infix expression to postfix expression
#include<stdio.h>
#include<ctype.h>
char stack[100];
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;
return 0;
}
int main()
{
char exp[100];
char *e, x;
printf("Enter the expression : ");
scanf("%s",exp);
printf("\n");
e = exp;
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(priority(stack[top]) >= priority(*e))
printf("%c ",pop());
push(*e);
}
e++;
}
while (top != -1)
{
printf("%c",pop());
} return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment