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

Integer Postfix Calculator

Write a program that 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 5 4 + 3 10 * + 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

5 4 + 3 10 * +

4 + 3 10 * + 5

+ 3 10 * + 4 5

3 10 * + 9

10 * + 3 9

* + 10 3 9

+ 30 9

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 4 5 - as 4 - 5 and, likewise, will evaluate 4 5 / 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.

Submit your .cpp source code and a screen shot of your program in action.

The hold code please.

c++ programs

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!