/******************************************* Engineering 4892 Data Structures Assignment: 1 Date Due: May 19th/2001 Name: Daryl Martin Student #: 9713520 Username: darylm ********************************************/ #include "evaluate.h" #include #include #include int evaluate(const std::string& exp) { stack numbers; stack oper; int i = 0; while(exp[i]){ switch(exp[i]){ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '0': string buffer; buffer = exp[i]; numbers.push(atoi(buffer.c_str())) break; case '/': case '*': case '-': case '+': oper.push(exp[i]); break; case ')': int a = 0; int b = 0; char oper; a = numbers.top(); numbers.pop(); b = numbers.top(); numbers.pop(); oper = oper.top(); oper.pop(); switch(oper){ case '/': numbers.push(b/a); break; case '*': numbers.push(a*b); break; case '-': numbers.push(b-a); break; case '+': numbers.push(a+b); break; } break; } i++; } }