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

Java Program to Implement sorting algorithm using TCP on Server application

C++ program to perform data transformation Min-max and Z score Normalization