Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Question 2: (50 pts) Assume that we are given a number and we carry out a sequence of mathematical operations (multiplication, division, subtraction, summation on
Question 2: (50 pts) Assume that we are given a number and we carry out a sequence of mathematical operations (multiplication, division, subtraction, summation on the number. Consider the stack data structure in Java to store the history of the mathematical operations. Then, use the same stack to revert the mathematical operations on a given number Ex: number = 10 Storing history Operation 1: (first operand, type, second operand) = (number, *, 3) Do() returns 10 * 3 = 30, and the current value of number is 30. stack {Operation 1} Operation 2: (first operand, type, second operand) = (number, +, 8) Dod) returns 30 + 8 = 38, and the current value of number is 38. stack = {Operation 1, Operation 2) Backtracking Last operation in the stack is Operation 2: (30, +, 8). Undo() returns 30, and the current value of number is 30. stack = {Operation 1} Last operation in the stack is Operation 1: (10,* 3). Undo() returns 10, and the current value of number is 10. stack = 0 Define a class Operation which has fields for the first operand, operation type (*/.-,+) and second operand. This class should also implement a method Dol), which returns the result of the operation, and a method Undo(), which returns the first operand's value. Let us given number = 10 initially and assume this value as the first operand. Randomly generate a operation type from (*./,-- +), and a value for the second operand in the range [1,20). Store this operation in a Stack
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