Question: Write a program in cppthat accepts a string that is a space - delimited integer arithmetic expression in postfix notation. Use a stack to compute

Write a program in cppthat accepts a string that is a space-delimited integer arithmetic expression in postfix notation. Use a stack to compute the value.
Example:
The input string 54+310*+ is equivalent to the infix expression (5+4)+(3*10)
The answer is 39.
The algorithm is:
Take the leftmost token from the string
If it is numeric (which may include a unary operator), push that token onto the stack
If it is a binary operation, pop the vector twice, apply the operation, and push the result
When the input string is empty, the stack will contain one entry: the final answer
Heres how the given string gets processed:
String Stack
54+310*+
4+310*+5
+310*+ a 45
310*+9
10*+39
*+1039
+309
39
The final answer, 39, is the only element in the stack after all tokens in the string have been consumed.
This problem has an extra twist. The string contains characters, so 10 isnt a ten, but is the char 1 followed by the char 0. You will need to convert string representations of integers (signed and unsigned) into their integer values. Youll also need to handle unary - and +.
We also have to worry about the three non-commuting operators /%. We will evaluate the postfix string 45- as 4-5 and, likewise, will evaluate 45/ as 4/5 and 45% as 4%5.
The program should continue to accept and process input strings until the user enters a zero as input. Theres no need to check for validity; all input will be well-formed postfix expressions.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!