BIG JAVA: LATE OBJECTS
2nd Edition
ISBN: 9781119626220
Author: Horstmann
Publisher: WILEY
expand_more
expand_more
format_list_bulleted
Question
Chapter 16, Problem 13PP
Program Plan Intro
Double-ended queue (deque) as a circular array
Program plan:
- In a file “CircularArrDeque.java”, import necessary package, and create a class “CircularArrDeque”,
- Declare the necessary array of type “Object”.
- Declare the necessary variables.
- Define the constructor to create the empty queue.
- Define the method “empty()” to check whether the queue is empty.
- Define the method “add()” to insert the element at rear end of the queue,
- Call the method “growBufferIfNecessary()”.
- Increment the size.
- Assign the new element to the rear of the queue.
- Update the rear value.
- Define the method “modDecrement()”,
- Check whether the passed value is “0”,
- If it is true, subtract “1” from the buffer length and set to the variable.
- Otherwise, subtract “1” from the value.
- Return the value.
- If it is true, subtract “1” from the buffer length and set to the variable.
- Check whether the passed value is “0”,
- Define the method “addFirst()”,
- Check whether the size is greater than “0”,
- If it is true, call the method “growBufferIfNecessary()”.
- Increment the size by “1”.
- Assign the value returned from the method “modDecrement()” to the front of the queue.
- Assign the new element to the buffer’s head.
- Otherwise,
- Decrement the size.
- Assign the new element to the front o the queue.
- Set the rear of the queue as “1”.
- If it is true, call the method “growBufferIfNecessary()”.
- Check whether the size is greater than “0”,
- Define the method “addLast()”,
- Call the method “add()”.
- Define the method “remove()” to remove the element from front end of the queue,
- Check whether the current size is “0”,
- Throw an exception.
-
- Declare and initialize the object.
- Update the front value.
- Decrement the size.
- Return the object properties.
-
- Throw an exception.
- Check whether the current size is “0”,
- Define the method “removeFirst()” that returns the value returned from the method “remove()”.
- Define the method “removeLast()”,
- Check whether the size is greater than “0”,
- If it is true, throws an exception “NoSuchElementException”.
-
- Assign the value to the rear of the queue.
- Assign the tail value to the object.
- Decrement the size.
- Return the object.
-
- If it is true, throws an exception “NoSuchElementException”.
- Check whether the size is greater than “0”,
- Define the method “size()” that returns the current size of the queue.
- Define the method “get()”,
- Compute the value.
- Return the value in the buffer.
- Define the method “growBufferIfNecessary()”,
- Check the condition,
- If it is true, create an object for “Object”.
- Create a loop,
- Fill the object array.
- Assign the new buffer.
- Set the front of the queue to “0”.
- Set the value of the rear of the queue.
- Check the condition,
- In a file “QueueTeste.java”, create a class “QueueTeste”,
- Define the “main()” method.
- Create “CircularArrDeque” object.
- Add the element “John” to the first of the queue.
- Add the element “Jerry” to the first of the queue.
- Call the method “printAll()”.
- Print the expected result.
- Remove the name from the front of the deque.
- Call the method “printAll()”.
- Print the expected result.
- Add the element “David” to the rear of the queue.
- Add the element “Hassan” to the rear of the queue.
- Add the element “Sujith” to the rear of the queue.
- Add the element “Mithran” to the rear of the queue.
- Call the method “printAll()”.
- Print the expected result.
- Remove the element from the rear of the queue.
- Remove the element from the rear of the queue.
- Print the expected result.
- Print the expected result.
- Call the method “printAll()”
- Print the expected result.
- Remove the element from the first of the deque.
- Call the method “printAll()”.
- Print the expected result.
- Add the element “Jennie” to the front of the queue.
- Call the method “printAll()”.
- Print the expected result.
- Define the “main()” method.
Expert Solution & Answer

Want to see the full answer?
Check out a sample textbook solution
Students have asked these similar questions
Tracing the Recursion.
Tracing the Recursion. Observe the recursive solution provided below.
1. Which line(s) of this program define(s) the base case of sumOfDigits() method?
2. Which line(s) of this program include recursive call(s)?
3. Trace the recursion below. You must show the trace step by step; otherwise – little
to no credit!
4. Show me the final result!
1 public class SumOfDigitsCalculator {
30
123456
7%
8
public static void main(String[] args) {
System.out.println(sumOfDigits(1234));
}
public static int sumOfDigits (int number) {
if (number == 0)
9
10
11
12
}
13 }
else
return 0;
return number % 10 + sumOfDigits (number / 10);
module : java 731
Question3: (30 MARKS) Passenger Rail Agency for South Africa Train Scheduling System Problem Statement Design and implement a train scheduling system for Prasa railway network. The system should handle the following functionalities: 1. Scheduling trains: Allow the addition of train schedules, ensuring that no two trains use the same platform at the same time at any station. 2. Dynamic updates: Enable adding new train schedules and canceling existing ones. 3. Real-time simulation: Use multithreading to simulate the operation of trains (e.g., arriving, departing). 4. Data management: Use ArrayList to manage train schedules and platform assignments. Requirements 1. Add Train Schedule, Cancel Scheduled Train, View Train Schedules and Platform Management 2. Concurrency Handling with Multithreading i.e Use threads to simulate train operations,…
please answer my 2 java questions correctly , include all comments etc and layout and structure must be correct , follow the requirements
Chapter 16 Solutions
BIG JAVA: LATE OBJECTS
Ch. 16.1 - Prob. 1SCCh. 16.1 - Prob. 2SCCh. 16.1 - Prob. 3SCCh. 16.1 - Prob. 4SCCh. 16.1 - Prob. 5SCCh. 16.1 - Prob. 6SCCh. 16.1 - Prob. 7SCCh. 16.2 - Prob. 8SCCh. 16.2 - Prob. 9SCCh. 16.2 - Prob. 10SC
Ch. 16.2 - Prob. 11SCCh. 16.2 - Prob. 12SCCh. 16.3 - Prob. 13SCCh. 16.3 - Prob. 14SCCh. 16.3 - Prob. 15SCCh. 16.3 - Prob. 16SCCh. 16.3 - Prob. 17SCCh. 16.3 - Prob. 18SCCh. 16.4 - Prob. 19SCCh. 16.4 - Prob. 20SCCh. 16.4 - Prob. 21SCCh. 16.4 - Prob. 22SCCh. 16.4 - Prob. 23SCCh. 16.4 - Prob. 24SCCh. 16 - Prob. 1RECh. 16 - Prob. 2RECh. 16 - Prob. 3RECh. 16 - Prob. 4RECh. 16 - Prob. 5RECh. 16 - Prob. 6RECh. 16 - Prob. 7RECh. 16 - Prob. 8RECh. 16 - Prob. 9RECh. 16 - Prob. 10RECh. 16 - Prob. 11RECh. 16 - Prob. 12RECh. 16 - Prob. 13RECh. 16 - Prob. 14RECh. 16 - Prob. 15RECh. 16 - Prob. 16RECh. 16 - Prob. 17RECh. 16 - Prob. 18RECh. 16 - Prob. 19RECh. 16 - Prob. 20RECh. 16 - Prob. 21RECh. 16 - Prob. 22RECh. 16 - Prob. 23RECh. 16 - Prob. 24RECh. 16 - Prob. 25RECh. 16 - Prob. 26RECh. 16 - Prob. 1PECh. 16 - Prob. 2PECh. 16 - Prob. 3PECh. 16 - Prob. 4PECh. 16 - Prob. 5PECh. 16 - Prob. 6PECh. 16 - Prob. 7PECh. 16 - Prob. 8PECh. 16 - Prob. 9PECh. 16 - Prob. 10PECh. 16 - Prob. 11PECh. 16 - Prob. 12PECh. 16 - Prob. 13PECh. 16 - Prob. 14PECh. 16 - Prob. 15PECh. 16 - Prob. 16PECh. 16 - Prob. 17PECh. 16 - Prob. 18PECh. 16 - Prob. 19PECh. 16 - Prob. 20PECh. 16 - Prob. 21PECh. 16 - Prob. 1PPCh. 16 - Prob. 2PPCh. 16 - Prob. 3PPCh. 16 - Prob. 4PPCh. 16 - Prob. 5PPCh. 16 - Prob. 6PPCh. 16 - Prob. 7PPCh. 16 - Prob. 8PPCh. 16 - Prob. 9PPCh. 16 - Prob. 10PPCh. 16 - Prob. 11PPCh. 16 - Prob. 12PPCh. 16 - Prob. 13PPCh. 16 - Prob. 14PPCh. 16 - Prob. 15PPCh. 16 - Prob. 16PPCh. 16 - Prob. 17PP
Knowledge Booster
Similar questions
- Question3: Passenger Rail Agency for South Africa Train Scheduling System Problem Statement (30 MARKS) Design and implement a train scheduling system for Prasa railway network. The system should handle the following functionalities: 1. Scheduling trains: Allow the addition of train schedules, ensuring that no two trains use the same platform at the same time at any station. 2. Dynamic updates: Enable adding new train schedules and canceling existing ones. 3. Real-time simulation: Use multithreading to simulate the operation of trains (e.g., arriving, departing). 4. Data management: Use ArrayList to manage train schedules and platform assignments. Requirements 1. Add Train Schedule, Cancel Scheduled Train, View Train Schedules and Platform Management 2. Concurrency Handling with Multithreading i.e Use threads to simulate train operations, Each train runs as a separate thread, simulating its arrival, departure, and travel status. 3. Use ArrayList to manage train schedules for each…arrow_forwardplease answer my java question correctly , include all comments etc and layout and structure must be correct , follow the requirementsarrow_forwardplease answer my java question correctly , include all comments etc and layout and structure must be correct , follow the requirementsarrow_forward
- please answer my java question correctly , follow all requirements , add all commets etc and layout and structure must be perfect tooarrow_forwardplease answer my java question correctly , include all comments etc and layout and structure must be correct , follow the requirementsarrow_forward7. Long-Distance CallsA long-distance provider charges the following rates for telephone calls: Rate Category Rate per MinuteDaytime (6:00 a.m. through 5:59 p.m.) $0.07Evening (6:00 p.m. through 11:59 p.m.) $0.12Off-Peak (midnight through 5:59 a.m.) $0.05Write a GUI application that allows the user to select a rate category (from a set of radio buttons), and enter the number of minutes of the call into an Entry widget. An info dialog box should display the charge for the call.arrow_forward
- Name and Address The Name and Address Problem Write a GUI program that displays your name and address when a button is clicked. The program’s window should appear as the sketch on the left side of Figure 13-61 when it runs. When the user clicks the Show Info button, the program should display your name and address, as shown in the sketch on the right of the figure.arrow_forwardExercise 1 Function and Structure [30 pts] Please debug the following program and answer the following questions. There is a cycle in a linked list if some node in the list can be reached again by continuously following the next pointer. #include typedef struct node { int value; struct node *next; } node; int 11_has_cycle (node *first) if (first == node *head = { NULL) return 0; first; while (head->next != NULL) { } if (head first) { return 1; } head = head->next; return 0; void test ll_has_cycle () { int i; node nodes [6]; for (i = 0; i < 6; i++) { nodes [i] .next = NULL; nodes [i].value = i; } nodes [0] .next = &nodes [1]; nodes [1] .next = &nodes [2]; nodes [2] .next = &nodes [3]; nodes [3] .next nodes [4] .next &nodes [4]; NULL; nodes [5] .next = &nodes [0]; printf("1. Checking first list for cycles. \n Function 11_has_cycle says it has s cycle\n\n", 11_has_cycle (&nodes [0])?"a":"no"); printf("2. Checking length-zero list for cycles. \n Function 11_has_cycle says it has %s…arrow_forwardhow to read log logsarrow_forward
- Discrete Mathematics for Computer Engineeringarrow_forwardQuestion 1 - Array Iterators Like the JS on A2, there is no visual component to this question. The HTML really just needs to load the JavaScript, everything else will output to the console. The JS file should the completion of the task, and all necessary testing, so that just loading the file will complete the task with enough different inputs to ensure it works. Even Numbers [3 marks] Create a function that determines if a provided number is even. Define an array of numbers, then on the array use the appropriate array iterator to determine if the array contains only even numbers using the function you defined. Output the results, and test with several arrays. Long Names [3 marks] Define an array of names. Use an iterator to retrieve a new array containing only the names longer then 12 characters. Your iterator should be passed an anonymous arrow function. Test with several different arrays First Names [3 marks] Define an array called fullNames that contains 7 javascript objects of…arrow_forwardDiscrete Mathematics for Computer Engineeringarrow_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