DS6

 Practical Name : Write a ‘C’ program to accept an infix expression, convert it into its equivalent postfix expression and display the result.(Use Dynamic Implementation of Stack)


#include<stdio.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;

if(x == '+' || x == '-') return 1;

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());


}


return 0;


}


Post a Comment

Previous Post Next Post