infix to prefix

 #include<stdio.h>

#include<conio.h>

#include<ctype.h>


char stack[100];

int top=-1;


void push(char x)

{

stack[++top]=x;

}

char pop()

{

if(top==-1)

return -1;

else

return stack[top--];

}

int priority(char x)

{

if(x=='(')

return 0;

else if(x=='+'||x=='-')

return 1;

else if(x=='*'||x=='/')

return 2;

return 0;

}

int main()

{

char exp[100] ;

char *e,x;

printf("enter the expression:");

scanf("%s",exp);

printf("\n");

e=exp;

while(*e !='\0')

{

if(isalnum(*e))

printf("%c",*e);

else if(*e=='(')

push(*e);

else if(*e==')')

{

while((x=pop()) !='(')

printf("%c",x);

}

else

{

while(priority(stack[top]) >=priority(*e))

printf("%c",pop());

push(*e);

}

e++;

}

while(top!=-1)

printf("%c",pop());

getch();

}

Comments