Question in polish Notation example infix notation 15841 po

Question in polish Notation.

example:

infix notation : (1+5)*(8-(4-1))

postix notation : 15+841--*

Given a consant string:

1. Write a function in C and the program in MIPS assembly that converts with the help of stack, the given string and makes it postfix.

Then write another function in C and then the program in MIPS assembly that calculates the result of the converted(postix) function.

Solution

#include<stdio.h>

char stack[50];
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;
}

main(){
char exp[20];
char *e, x;
char post[50] = \"\";
int n1,n2,n3,num;
printf(\"Enter the expression :: \");
scanf(\"%s\",exp);
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();
}

#include<stdio.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(\"\ The result of expression %s = %d\ \ \",exp,pop());
return 0;

}

Question in polish Notation. example: infix notation : (1+5)*(8-(4-1)) postix notation : 15+841--* Given a consant string: 1. Write a function in C and the prog
Question in polish Notation. example: infix notation : (1+5)*(8-(4-1)) postix notation : 15+841--* Given a consant string: 1. Write a function in C and the prog
Question in polish Notation. example: infix notation : (1+5)*(8-(4-1)) postix notation : 15+841--* Given a consant string: 1. Write a function in C and the prog

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site