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