Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Logidata+ Deductive Databases With Complex Objects Lncs 701

Authors: Paolo Atzeni

1st Edition

354056974X, 978-3540569749

More Books

Students also viewed these Databases questions

Question

11. Are your speaking notes helpful and effective?

Answered: 1 week ago

Question

The Goals of Informative Speaking Topics for Informative

Answered: 1 week ago