Wednesday 11 February 2015

program to convert prefix to infix

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#define MAX 20
void convert_infix(char x);
void pretoin(char prefix[],char infix[]);
char stack[MAX][MAX];
int top=-1;
void main()
{
char prefix[30],infix[30];
//clrscr();
printf("\nEnter prefix=");
gets(prefix);
pretoin(prefix,infix);
printf("infix expression : %s",infix);
getch();
}
void pretoin(char prefix[],char infix[])
{
int i,top=-1;
char x,st1[30];
for(i=strlen(prefix)-1;i>=0;i--)
{
x=prefix[i];
if(isalnum(x))
{
st1[0]=x;
st1[1]='\0';
top=top+1;
strcpy(stack[top],st1);
}
else
{
convert_infix(x);
}
}
strcpy(infix,stack[top]);
}
void convert_infix(char x)
{
      char st1[30],st2[30];
      st1[0]='(';
st1[1]='\0';
strcat(st1,stack[top]);
st2[0]=x;
st2[1]='\0';
strcat(st1,st2);
strcat(st1,stack[top-1]);
st2[0]=')';
st2[1]='\0';
strcat(st1,st2);
top=top-1;
strcpy(stack[top],st1);

}

No comments:

Post a Comment