Big Java, Binder Ready Version: Early Objects
Big Java, Binder Ready Version: Early Objects
6th Edition
ISBN: 9781119056447
Author: Cay S. 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, Binder Ready Version: Early 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