#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