wooyun 发表于 2015-11-24 12:19:19

[DS][3-19]Evaluate a postfix expression

  Source:
  Data Structures and Algorithm Analysis in C
  The second edition (English version)
  P873.19
  


  Requirement:
  write a program to evaluate a postfix expression
  


  Analysis:
  Usually what we do to evaluate a postfix expression is to use a link list to implement a stack. However, if by this way, the code should at least contain a structure, pop and push which makes the code long. Actually a array is enough to solve this question.(if
possible, i will add the link-list version later)
  


  Answer:
  

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int num;
int ptr;
int main(void){
char temp;
while(scanf(&quot;%s&quot;,temp)!=EOF){
switch(temp){
case '+':
ptr -= 2;
num = num + num;
ptr++;
break;
case '-':
ptr -= 2;
num = num - num;
ptr++;
break;
case '*':
ptr -= 2;
num = num * num;
ptr++;
break;
case '/':
ptr -= 2;
num = num / num;
ptr++;
break;
default:
num = atoi(temp);
break;
}
}
printf(&quot;%d\n&quot;,num);
return 0;
}



  
  


  


  


  


  


  


  


  
页: [1]
查看完整版本: [DS][3-19]Evaluate a postfix expression