Big Java Late Objects
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
Question
Book Icon
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.
    • 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”.
    • 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.
    • 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.
    • 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.
  • 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.

Blurred answer

Chapter 16 Solutions

Big Java Late Objects

Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education