An algorithm to show polish notation .

##An algorithm to show polish notation .
Algoritthm given below:




Now we will implement this algorithm in a program:

Source Code in C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int stack[20];
int top = -1;
void push(int x)
{
  stack[++top] = x;
}
int pop()
{
  return stack[top--];
}
int main()
{
char exp[20];
char *e;
int n1,n2,n3,num;
printf("Enter the expression :: ");
scanf("%s",exp);
e = exp;
while(*e != '\0')
{
if(isdigit(*e))
{ num = *e - 48; push(num); }
else
{
n1 = pop(); n2 = pop(); switch(*e)
{
case '+': { n3 = n1 + n2; break; }
case '-': { n3 = n2 - n1; break; }
case '*': { n3 = n1 * n2; break; }
case '/': { n3 = n2 / n1; break; }
}
push(n3);
}
e++;
}
printf("\nThe result of expression %s = %d\n\n",exp,pop());
return 0;
}


Output:
Enter the expression :: 12*31+*2

The result of expression 12*31+*2 = 2


Press any key to continue . . .








No comments

Powered by Blogger.