DavidNorgren

Untitled

Aug 10th, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7. int popFixd(stack<int>* s) {
  8.     int v = s->top();
  9.     s->pop();
  10.     return v;
  11. }
  12.  
  13. int main() {
  14.     string myPostfix;
  15.     stack<int> myStack;
  16.     int myResult;
  17.  
  18.     cin >> myPostfix;
  19.  
  20.     // http://i.imgur.com/COzxFTm.png
  21.     for (int i = 0; i < myPostfix.size(); i++) {
  22.         switch (myPostfix[i]) {
  23.             case '+': myStack.push(popFixd(&myStack) + popFixd(&myStack)); break;
  24.             case '-': myStack.push(popFixd(&myStack) - popFixd(&myStack)); break;
  25.             case '*': myStack.push(popFixd(&myStack) * popFixd(&myStack)); break;
  26.             case '/': myStack.push(popFixd(&myStack) / popFixd(&myStack)); break;
  27.             default: myStack.push(myPostfix[i] - '0'); break; // http://stackoverflow.com/a/439589/2229164
  28.         }
  29.     }
  30.  
  31.     cout << "Result: " << popFixd(&myStack) << endl;
  32.  
  33.     return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment