#include #include #include //#define #include using namespace std; int main () { //declare variables char first, operand; //This will be storing the first entry from the string, and the second will be our operand. int test, size, var1, var2, result; //These will store our two integers and store it for output. Size is for our for loop terminator. Test is to hold a converted char-to-integer. string storage = ''; //This will be the user entry. //user input cout << "Please input the postfix expression you want to evaluate: "; getline(cin, storage); //We want to take the first character of the string, put it into first, then push it onto the stack. //When we hit the operand, we store it in operand variable, pop the first two entries of the stack into var1 and var 2. //Then we test if the stack is empty, if it isn't, we push them back onto the stack, and continue from the top. stack = stack_1 //declare empty stack size = strlen.storage //define this as the size of our string in a separate int for (int i = 0; i <= size; i++){ //execute the loop until it reads the entire string first = storage.at(i) //put the first character of the string into the char variable first if (first != ('+' || '-' || '*' || '/' || '%') { //If they are not operands then do the following: test = atoi(first) //change the first character to an int stack_1.push(test); //push the int onto our stack else { //if it IS an operand var1 = stack_1.pop(); //pop off the top of the stack into the first var var2 = stack_1.pop(); //pop off the top of the stack (minus the previous one) into the second var switch //depending on the type of operand, perform the operation with case '+' : result = var2 + var1; case '-' : result = var2 - var1; case '*' : result = var2 * var1; case '/' : result = var2 / var1; case '%' : result = var2 % var1; }//At this point, we have iterated through the loop and either pushed all the values onto the stack or evaluated them all via our switch statement. I don't need to check whether the stack is empty or peek at it, because I know that I have reached the end of my string. cin.get(); cin.get(); return 0; }