Search This Blog

Monday, March 17, 2014

INFIX to POSTFIX convertion



INFIX to POST FIX



#include<stdio.h> 
#include<conio.h>          
#include <ctype.h>
char s[20];
int top = -1;
void push(char elem)
{
 top++;
 s[top] = elem;
}

char pop()
{ 
return (s[top--]);
}

int pr(char elem)
{
 switch (elem)
 {
 case '(':
  return 1;
 case '+':
 case '-':
  return 2;
 case '*':
 case '/':
  return 3;
 }
 return 0;
}

void main()
 {
char infx[50], pofx[50], ch, elem;
 int i = 0, k = 0;
 printf("\n\nRead the Infix Expression ? ");
 scanf("%s", infx);
 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 (top !=-1 )
  pofx[k++] = pop();
 pofx[k] = '\0';
printf("\n\nGiven Infix Expn: %s  Postfix Expn: %s\n", infx, pofx);
}

No comments:

Post a Comment