Data Structures and Algorithms in Java

6th Edition

ISBN: 9781118771334

Author: Michael T. Goodrich

Publisher: WILEY

*expand_more*

*expand_more*

*format_list_bulleted*

#### Concept explainers

Question

Chapter 6, Problem 1R

Program Plan Intro

**Stack:**

- Stack is a non-primitive linear data structure.
- It is a collection of data of any type where insertion and deletion of data take place at one end called as top of the stack.
- As all the insertion and deletion happens from top of the stack or at one point, stack is also known as Last In First Out (LIFO) type of data structure.

Expert Solution & Answer

### Explanation of Solution

**Stack Operations:**

Operations performed on the stack are as follows:

- PUSH
- Adds item to the collection and increases size of the stack.

- POP
- Returns the last item from collection and decreases the size of the stack.

- TOP
- Returns last item from the collection without removing it.

**Current size of the Stack, S:**

If 3 POP operations returned null, then only 7 POP operations out of 10 decrease the size of the stack. Therefore, the current size of stack is 18 elements since PUSH adds elements, TOP doesn't add or remove elements, and POP removes elements.

### Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!

*schedule*02:20

Students have asked these similar questions

Explain the difference between the bound stack and the unbounded stack in more detail, please.

Suppose an initially empty stack S has performed a total of 50 push operations, 31 peek operations, and 32 pop operations, 7 of which return to indicate an empty stack. What is the current size of S?

You may only operate on the stacks WORK and TEMP, supporting their ADT operations of PUSH (S, X), POP (S, X), and EMPTYSTACK (S), where X is an element or variable to be pushed into or popped out of the stack and S denotes the stack itself. If necessary to complete the procedures, you may also utilise one variable.i
i) I How can you determine the least element that was put into Work given n different random numbers? You may employ a single variable.
ii) Given n distinct random numbers that are to be pushed into WORK, how canyou find the maximum element that was pushed into it, all the while ensuring thatthe elements stored in WORK are in their descending order with the maximumelement beginning at the bottom of stack? You are permitted to use a lone variableand a temporary stack TEMP.

# Chapter 6 Solutions

Data Structures and Algorithms in Java

Knowledge Booster

Learn more about

Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions

- You are allowed to operate on a stack WORK and a temporary stack TEMP (ifneeded) supporting their ADT operations of PUSH (S,X), POP (S, X) andEMPTYSTACK (S) only, where X represents an element/variable to be pushed in orpopped out of the stack and S represents a stack. You are also permitted to use onevariable if needed to carry out the operations.i) Given n distinct random numbers that are to be pushed into WORK, how canyou find the minimum element that was pushed into it? You are permitted to use alone variable.ii) Given n distinct random numbers that are to be pushed into WORK, how canyou find the maximum element that was pushed into it, all the while ensuring thatthe elements stored in WORK are in their descending order with the maximumelement beginning at the bottom of stack? You are permitted to use a lone variableand a temporary stack TEMP.iii) Given an array A[1: n] of distinct random numbers how can you obtain thesorted list in the array, making use of stacks alone?
*arrow_forward*What are the requirements for determining if a linked list T is empty if T is one of the following: (i) a simple singly linked list, (ii) a headed singly linked list, (iii) a simple circularly linked list, or (iv) a headed circularly linked list?*arrow_forward*You are allowed to operate on a stack WORK and a temporary stack TEMP (ifneeded) supporting their ADT operations of PUSH (S,X), POP (S, X) andEMPTYSTACK (S) only, where X represents an element/variable to be pushed in orpopped out of the stack and S represents a stack. You are also permitted to use one variable if needed to carry out the operations. i) Given n distinct random numbers that are to be pushed into WORK, how canyou find the maximum element that was pushed into it, all the while ensuring thatthe elements stored in WORK are in their descending order with the maximumelement beginning at the bottom of stack? You are permitted to use a lone variableand a temporary stack TEMP.ii) Given an array A[1: n] of distinct random numbers how can you obtain thesorted list in the array, making use of stacks alone?*arrow_forward* - What prerequisites must be met in order to determine whether a linked list T is empty, (i) simple singly linked list, (ii) headed singly linked list, (iii) simple circularlylinked list or (iv) headed circularly linked list?
*arrow_forward*You may only operate on the stacks WORK and TEMP, supporting their ADT operations of PUSH (S, X), POP (S, X), and EMPTYSTACK (S), where X is an element or variable to be pushed into or popped out of the stack and S denotes the stack itself. If necessary to complete the procedures, you may also utilise one variable. i) How can you determine the least element that was pushed into WORK given n different random integers that are going be placed into it? You are allowed to employ a single variable. ii) How can you determine the maximum element that was put into Work, given n different random integers, while making sure that the items placed in Work are arranged in ascending order, with the maximum element starting at the bottom of the stack? You are allowed to utilise the temporary stack TEMP as well as a single variable. iii) How can you create the sorted list in the array using just stacks given an array A[1: n] of unique random numbers?*arrow_forward*Could you help explain the difference between the restricted version of the stack and the unbounded version of the stack? Thank you for your time.*arrow_forward* - In Go Lang 4. Program stack. For the following code, answer the following questions. Assume we are putting everything for our function calls on the stack. · Show what a stack frame/activation record for main() looks like · Show what the stack frame/activation record for the 2nd call to ctTarg look like? (Yes, this means you can skip the other stack frames) · We note that targ does not change value in any recursive call. Why doesn't the compiler just store targ once in one block of memory big enough to store a string? int ctTarg(string* list, int len, string targ) { if (len <= 0) return 0; if (*list == targ) return 1 + ctTarg(list + 1, len - 1, targ); return ctTarg(list + 1, len - 1, targ); } int main() { string pets[] = {"cat", "dog", "mouse", "cat"}; cout << ctTarg(pets, 4, "cat") << endl; }
*arrow_forward*You may operate on a stack WORK and a temporary stack TEMP (if necessary) to enable its ADT operations of PUSH (S,X), POP (S, X), and EMPTYSTACK (S), where X represents an element/variable to be pushed into or popped out of the stack and S represents a stack. You may also utilise one variable to carry out the procedures if necessary. I Given n different random integers to be pushed into WORK, how can you determine the maximum element pushed into it while ensuring that the items placed in WORK are in decreasing order, with the maximum element beginning at the bottom of the stack? You may utilise a single variable and the temporary stack TEMP. ii) Given an array A[1: n] of different random numbers, how can you extract the array's sorted list using only stacks?*arrow_forward*Please elaborate on the distinction between the bound and unbounded stack.*arrow_forward* - Whereas the unbounded stack has no such limits, could you perhaps elaborate on how this works?
*arrow_forward*Stack A has the entries a, b, c (with a on top). Stack B is empty. An entry popped out of stack A can be printed immediately or pushed to stack B. An entry popped out of the stack B can only be printed. In this arrangement, which of the following permutations of a, b, c are not possible?*arrow_forward*Discover the stack's performance when let to be itself.*arrow_forward*

*arrow_back_ios*

SEE MORE QUESTIONS

*arrow_forward_ios*

Recommended textbooks for you

- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts

Computer Science

ISBN:9780078022159

Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan

Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)

Computer Science

ISBN:9780134444321

Author:Tony Gaddis

Publisher:PEARSON

Digital Fundamentals (11th Edition)

Computer Science

ISBN:9780132737968

Author:Thomas L. Floyd

Publisher:PEARSON

C How to Program (8th Edition)

Computer Science

ISBN:9780133976892

Author:Paul J. Deitel, Harvey Deitel

Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...

Computer Science

ISBN:9781337627900

Author:Carlos Coronel, Steven Morris

Publisher:Cengage Learning

Programmable Logic Controllers

Computer Science

ISBN:9780073373843

Author:Frank D. Petruzella

Publisher:McGraw-Hill Education