Question
There are two main operations associated with stacks; 1) putting things on the stack which is referred to as push , 2) taking things from
There are two main operations associated with stacks;
1) putting things on the stack which is referred to as push,
2) taking things from the stack which is referred to as pop.
Part 1: Reverse the word
We can create a stack using linked lists if we force ourselves to insert and remove nodes only at the top of the list. One use of a stack is when you want to write a word backward. In that case, you will read the letters of the word one-by-one and as you read them will push them onto a stack. Once all letters are pushed onto the stack, then pop them back one-by-one. This will produce the letters of the word in reverse order.
Give the definition of the member function push of the class Stack.
Given the definition of the copy constructor for the class Stack.
Write a program that opens a text file and reads its contents into a stack of characters. The program should then pop the characters from the stack and save them in a second text file. The order of the characters saved in the second file should be the reverse of their order in the first file.
Part 2: Reverse Polish Notation (RPN)
Polish notation/expression is also known as prefix notation where the numbers are preceded by its operator (placed in the front). In RPN, the operator comes after the operands instead of the normal format in which the operator is between the operations (this is called infix notation).
Starting with an empty stack, a RPN calculator can be implemented with the following rules:
If a number is input, push it on the stack.
If + is input then pop the last two operands off the stack, add them, and push the result on the stack.
If - is input, then pop value1, pop value2, then push value2-value1 on the stack.
If * is input, then pop the last two operands off the stack, multiply them, and push the result on the stack.
If / is input, then pop value1, pop value2, then push value2/value1on the stack.
If q is input, then stop inputting values, print out the top of the stack, and exit the program.
Modify the Stack class given in the class to store integers instead of characters. Use the modified stack to implement a RPN calculator. Output an appropriate error message if there are not two operands on the stack when given an operator.
Here is a sample input and output that is equivalent to ( (10 ( 2 + 3 ) * 2 ) ) / 5:
10
2
3
+
-
2
*
5
/
q
The top of the stack is: 2
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started