C program to convert Infix to Postfix Expression using Stack

Simple C program to convert Infix to Postfix Expression using Stack.

Code:

#include<stdio.h>

#include<conio.h>

#include <ctype.h>

char s[50];

int top=-1;



push(char elem)

{

s[++top]=elem;

}



char pop()

{

return(s[top--]);

}



int pr(char elem)

{

switch(elem)

{

case '#': return 0;

case '(': return 1;

case '+':

case '-': return 2;

case '*':

case '/': return 3;

}

}



main()

{

char infx[50],pofx[50],ch,elem;

int i=0,k=0;

clrscr();

printf("\n\nEnter the infix Expression: ");

scanf("%s",infx);

push('^');

while( (ch=infx[i++]) != '\0')

{

if( ch == '(') push(ch);

else

if(isalnum(ch)) pofx[k++]=ch;

else

if( ch == ')')

{

while( s[top] != '(')

pofx[k++]=pop();

elem=pop();

}

else

{

while( pr(s[top]) >= pr(ch) )

pofx[k++]=pop();

push(ch);

}

}

while( s[top] != '^')

pofx[k++]=pop();

pofx[k]='\0';

printf("\n\nGiven Infix Expression: %s \nPostfix Expression: %s\n",infx,pofx);

getch();

}

Comments

Popular posts from this blog

C program to evaluate Prefix Expression using Stack data structure

Servlet Program to Print Today’s Date and Time using refresh header

Java Program to Implement sorting algorithm using TCP on Server application