Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
4th Edition
ISBN: 9780134787961
Author: Tony Gaddis, Godfrey Muganda
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 20, Problem 2AW
Program Plan Intro
Stack:
- A stack is a linear data structure.
- It follows the order FILO (first in last out) LIFO or (last-in-first-out) for operations on it.
- The two main operations performed on a stack are,
- Push() – Add item to stack.
- Pop() – Remove item from stack.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
IN JAVA
Suppose that in the array-based stack, the array doubles in size after multiple push operations. But later on, fewer than half of the array’s locations might actually be used by the stack due to pop operations.
Revise the implementation so that its array also can shrink in size as objects are removed from the stack. Accomplishing this task will require two new private methods, as follows:
The first new method checks whether we should reduce the size of the array:
private boolean isTooBig()
This method returns true if the number of entries in the stack is less than half the size of the array and the size of the array is greater than 20.
The second new method creates a new array that is three quarters the size of the current array and then copies the objects in the bag to the new array:
private void reduceArray()
Implement each of these two methods, and then use them in the definition of pop()
Java
Consider the following class definition for an array-based stack implementation:pubic class Stack { private int[] m_array; private int m_index; public Stack(int cap) { m_array = new int[cap]; m_index = 0; }
public void push(int v) { if (m_index == m_array.length) throw new RuntimeException("push attempted on a full stack"); else { m_array[m_index] = v; m_index++; } }}
Follow the steps below to create a class SpecialStack with required instance variables and methods.a. Make sure that the SpecialStack class inherits from Stack. b. Declare two private instance variables: a boolean variable m_multiply, and an int variable m_number.c. Create a constructor that takes three parameters: an int cap, a boolean multiply, and an int number.d. The constructor should call the constructor of the super class and initialize the instance variables properly.e. Override the push method so it verifies if m_multiply is…
In Java please
create a generic stack code and implement these methods
peek() returns a reference to the item at the top of the stack without removing it from the stack
contains(T t) is a boolean method that returns true if the stack contains t, the parameter, otherwise returns false. The stack contains t if at least one T on the stack is equal to t using the equals() method. Note that there is always an available equals() method in Java, because Object, the common parent of all classes, contains one. Implement this method without using the contains()method of the list.
Chapter 20 Solutions
Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
Ch. 20.3 - Prob. 20.1CPCh. 20.3 - Prob. 20.2CPCh. 20.3 - Prob. 20.4CPCh. 20.3 - Prob. 20.5CPCh. 20.6 - Prob. 20.6CPCh. 20.6 - Prob. 20.7CPCh. 20.6 - Prob. 20.8CPCh. 20.6 - Prob. 20.9CPCh. 20 - Prob. 1MCCh. 20 - Prob. 2MC
Ch. 20 - Prob. 3MCCh. 20 - The concept of seniority, which some employers use...Ch. 20 - Prob. 5MCCh. 20 - Prob. 6MCCh. 20 - Prob. 8TFCh. 20 - Prob. 9TFCh. 20 - Prob. 10TFCh. 20 - Prob. 1FTECh. 20 - Prob. 2FTECh. 20 - Prob. 3FTECh. 20 - Prob. 4FTECh. 20 - Prob. 5FTECh. 20 - Prob. 1AWCh. 20 - Prob. 2AWCh. 20 - Suppose that you have two stacks but no queues....Ch. 20 - Prob. 1SACh. 20 - Prob. 2SACh. 20 - Prob. 3SACh. 20 - Prob. 4SACh. 20 - Prob. 5SACh. 20 - Prob. 6SA
Knowledge Booster
Similar questions
- Write a generic class called GenericStack<T> that represents a stack structure. A stack structure follow the strategy last-in-first-out, which means that the last element added to the stack, is the first to be taken out. The GenericStack class has the following attributes and methods: --An attribute ArrayList<T> elements which represents the elements of the stack.(All of you refer collection framework for ArrayList. or you can use an array to hold the elements of Stack.)[Refer the following links to have intro on ArrayList: https://www.w3schools.com/java/java_arraylist.asp, https://www.geeksforgeeks.org/arraylist-in-java/] --A constructor that creates the ArrayList or an Array --A method push(T e) which adds the element to the ArrayList<T> or array. --A method pop() which removes the last element of the ArrayList<T> (last element added), if the list is not already empty and returns it. --A method print() which prints the elements of the stack starting from the…arrow_forwardjava /* Practice Stacks and ourVector Write a java program that creates a stack of integers. Fill the stack with 30 random numbers between -300 and +300. A)- With the help of one ourVector Object and an additional stack, reorganize the numbers in the stack so that numbers smaller than -100 go to the bottom of the stack, numbers between -100 and +100 in the middle and numbers larger than +100 in the top (order does not matter) B)- (a little harder) Solve the same problem using only one ourVector object for help C)- (harder) Solve the same problem using only one additional stack as a helper */ public class HWStacks { public static void main(String[] args) { // TODO Auto-generated method stub } }arrow_forwardSuppose you are trapped on a desert island with nothing but a priority queue, and you need to implement a stack. Complete the following class that stores pairs (count, element) where the count is incremented with each insertion. Recall that make_pair(count, element) yields a pair object, and that p.second yields the second component of a pair p. The pair class defines an operator< that compares pairs by their first component, and uses the second component only to break ties.Code: #include <iostream>#include <queue>#include <string>#include <utility> using namespace std; class Stack{public: Stack(); string top(); void pop(); void push(string element);private: int count; priority_queue<pair<int, string>> pqueue;}; Stack::Stack(){ /* Your code goes here */} string Stack::top(){ /* Your code goes here */} void Stack::pop(){ /* Your code goes here */} void Stack::push(string element){ /* Your code goes here */} int main(){ Stack…arrow_forward
- Given a stack of positive integers, write a Java method called movePrimes that rearranges elements of the stack such that all prime numbers are below none primes regardless to the order of primes. Note: You are allowed to create only one other stack. You can not use other data structures such as array, arraylist, queue, ....etc. Consider the following example:arrow_forwardWrite a method to reverse the content of a stack. Inside the method, you may create exactly one temporary container -- either a stack or a queue. It is alright to create variables of primitive data types (such as, an integer), if required. You must use the following header. public void reverse(Stack s){arrow_forwardjava program: Implement generic class ArrayStack as discussed in the lectures having following methods: constructor, push, pop, peek, isEmpty, copy constructor, reallocate (private method). Also add following methods to this class: size: returns number of elements in the stack. contains: Search an element in the stack. If found returns true, else returns false. clear: Deletes all elements of the stack and make it empty stack. Implement generic class ArrayQueue as discussed in the lectures having following methods: constructor, copy constructor, offer, poll, peek, isEmpty, reallocate(private), iterator. Inner class Iter that implements interface Iterator having methods: constructor, hasNext, next. Also add following methods to the ArrayQueue class: size: returns number of elements in the queue. contains: Search an element in the stack. If found returns true, else returns false. clear: Deletes all elements of the stack and make it empty stack. Write a class called PalindromeChecker…arrow_forward
- Assume an implementation of a STACK that holds integers. Write a method public void CountPosNeg (Stack S) that takes Stack S as a parameter. After the call, the method prints the count of positive integers and negative integers on the stack. Note, the original must not be destroyed. public void CountPosNegarrow_forwardA CapnStackSparrow is an extended stack that supports four main operations: the standard Stack operations push(x) and pop() and the following non-standard operations:• max(): returns the maximum value stored on the Stack.• ksum(k): returns the sum of the top k elements on the Stack.The zip file gives an implementation SlowSparrow that implements these operations so that push(x) and pop() each run in ?(1) time, but max() and ksum(k) run in ?(?) time. For this question, you should complete the implementation of FastSparrow that implements all four operations in ?(1) (amortized) time per operation. As part of your implementation, you may use any of the classes in the Java Collections Framework and you may use any of the source code provided with the Java version of the textbook. Don't forget to also implement the size() and iterator() methods. Think carefully about your solution before you start coding. Here are two hints:1. don't use any kind of SortedSet or SortedMap, these all require…arrow_forwardAnswer the given question with a proper explanation and step-by-step solution. Hello team, Need some help with problems below using the langauge JAVA. I need to modify the CalcParser class provided below. I need this to produce a string containing commands to evaluate the expression on a stack machine. For example, if you give the command java CalcParser 1+2*3, the output should be a sequence of stack commands such as this: push 1.0 push 2.0 push 3.0 multiply add 7.0 For the command java CalcParser (1+2)*3, on the other hand, it should print a sequence like this: push 1.0 push 2.0 add push 3.0 multiply 9.0 CODE:public class CalcParser { private CalcLexer lexer; private String errorMessage = null; private double value; public CalcParser(String s) { lexer = new CalcLexer(s);errorMessage = lexer.getErrorMessage();if (errorMessage != null) return; value = parseExpression();if (errorMessage != null) return; match(CalcLexer.EOLN_TOKEN);if (errorMessage != null) return; } public String…arrow_forward
- Given a class Stack with the interface public void push(char n) // pushes n onto stack public char pop() // return the top of the stack, removing element from stack public boolean isEmpty() // return true if stack is empty Write a method public void addStars(Stack<Character> stack) which takes a Stack as input and adds two asterisk (‘*’) at the front and back of all the elements in the stack. The stack must be restored to its original order plus the asterisks. For example, the stack [bottom] a b c d [top] Would become [bottom] ** a b c d ** [top]arrow_forwardWrite a program to sort a stack such that the smallest items are on the top. You can usean additional temporary stack, but you may not copy the elements into any other data structure(such as an array). The stack supports the following operations: push, pop, peek, and is Emptyarrow_forwardDraw a memory map for the code you see on the next page, until the execution reaches the point indicated by the comment /* HERE */.In your diagram:• You must have a stack, heap, and static memory sections • Identify each frame as illustrated by the previous examples.• Draw your variables as they are encountered during program execution. Code: public class Passenger {private String name;private int ticketCost;private StringBuffer luggage;private static final int LUGGAGE_COST = 20;public Passenger(String name, int ticketCost) {this.name = name;this.ticketCost = ticketCost;luggage = new StringBuffer();}public Passenger addLuggage(String desc) {ticketCost += LUGGAGE_COST;luggage.append(desc);return this;}public int getTicketCost() {return ticketCost;}public Passenger reduceCost(int by) {ticketCost -= by;/* HERE */return this;}public String toString() {return "Passenger [name=" + name + ", ticketCost=" + ticketCost + ", luggage=" + luggage + "]";}}public class Driver {public static void…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning