Wednesday 11 February 2015

program to covert prefix to postfix

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#define MAX 30
char stack[MAX][MAX];
int top;
void pre_to_post(char prefix[],char postfix[]);
void convert_postfix(char x);
main()
{
      char prefix[30],postfix[30];
      printf("Enter prefix=");
      gets(prefix);
      pre_to_post(prefix,postfix);
      printf("The postfix expression is=");
      puts(postfix);
      getch();
}
void pre_to_post(char prefix[30],char postfix[30])
{
      int top=-1,i,n;
      char x,st1[30];
      n=strlen(prefix);
      for(i=n-1;i>=0;i--)
      {
            x=prefix[i];
            if(isalnum(x))
            {
                  st1[0]=x;
                  st1[1]='\0';
                  top++;
                  strcpy(stack[top],st1);
            }
            else
            {
                  convert_postfix(x);
            }
      }
      strcpy(postfix,stack[top]);
}
void convert_postfix(char x)
{
      char st1[30],st2[30];
      st2[0]=x;
                  st2[1]='\0';
                  strcpy(st1,stack[top]);
                  strcat(st1,stack[top-1]);
                  strcat(st1,st2);
                  top=top-1;
                  strcpy(stack[top],st1);
}




      

No comments:

Post a Comment