screen shoot shows the text arrayboundedqueue and arrayunboundedqueue which approach does the text's use to creating an array-based queue implementation: A. the same as its approach to the array-based stack. B.  the fixed-front approach. C.  the floating-front approach.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
icon
Concept explainers
Question
screen shoot shows the text arrayboundedqueue and arrayunboundedqueue
which approach does the text's use to creating an array-based queue implementation:
A. the same as its approach to the array-based stack.
B.  the fixed-front approach.
C.  the floating-front approach.
 
```java
public class ArrayBoundedQueue<T> implements QueueInterface<T>
{
    protected final int DEFCAP = 100; // default capacity
    protected T[] elements;          // array that holds queue elements
    protected int numElements = 0;   // number of elements in this queue
    protected int front = 0;         // index of front of queue
    protected int rear;              // index of rear of queue

    public ArrayBoundedQueue()
    {
        elements = (T[]) new Object[DEFCAP];
        rear = DEFCAP - 1;
    }

    public ArrayBoundedQueue(int maxSize)
    {
        elements = (T[]) new Object[maxSize];
        rear = maxSize - 1;
    }

    public void enqueue(T element)
    // Throws QueueOverflowException if this queue is full;
    // otherwise, adds element to the rear of this queue.
    {
        if (isFull())
            throw new QueueOverflowException("Enqueue attempted on a full queue.");
        else
        {
            rear = (rear + 1) % elements.length;
            elements[rear] = element;
            numElements = numElements + 1;
        }
    }

    public T dequeue()
    // Throws QueueUnderflowException if this queue is empty;
    // otherwise, removes front element from this queue and returns it.
    {
        if (isEmpty())
            throw new QueueUnderflowException("Dequeue attempted on empty queue.");
        else
        {
            T toReturn = elements[front];
            elements[front] = null;
            front = (front + 1) % elements.length;
            numElements = numElements - 1;
            return toReturn;
        }
    }

    public boolean isEmpty()
    // Returns true if this queue is empty; otherwise, returns false.
    {
        return (numElements == 0);
    }

    public boolean isFull()
    // Returns true if this queue is full; otherwise, returns false.
    {
        return (numElements == elements.length);
    }

    public int size()
    // Returns the number of elements in this queue.
    {
        return numElements;
    }
}
```

**Explanation of Key Code Sections:**

- **ArrayBoundedQueue Class:**
  - This class implements a generic bounded queue using an array.
  - `DEFCAP` is a
Transcribed Image Text:```java public class ArrayBoundedQueue<T> implements QueueInterface<T> { protected final int DEFCAP = 100; // default capacity protected T[] elements; // array that holds queue elements protected int numElements = 0; // number of elements in this queue protected int front = 0; // index of front of queue protected int rear; // index of rear of queue public ArrayBoundedQueue() { elements = (T[]) new Object[DEFCAP]; rear = DEFCAP - 1; } public ArrayBoundedQueue(int maxSize) { elements = (T[]) new Object[maxSize]; rear = maxSize - 1; } public void enqueue(T element) // Throws QueueOverflowException if this queue is full; // otherwise, adds element to the rear of this queue. { if (isFull()) throw new QueueOverflowException("Enqueue attempted on a full queue."); else { rear = (rear + 1) % elements.length; elements[rear] = element; numElements = numElements + 1; } } public T dequeue() // Throws QueueUnderflowException if this queue is empty; // otherwise, removes front element from this queue and returns it. { if (isEmpty()) throw new QueueUnderflowException("Dequeue attempted on empty queue."); else { T toReturn = elements[front]; elements[front] = null; front = (front + 1) % elements.length; numElements = numElements - 1; return toReturn; } } public boolean isEmpty() // Returns true if this queue is empty; otherwise, returns false. { return (numElements == 0); } public boolean isFull() // Returns true if this queue is full; otherwise, returns false. { return (numElements == elements.length); } public int size() // Returns the number of elements in this queue. { return numElements; } } ``` **Explanation of Key Code Sections:** - **ArrayBoundedQueue Class:** - This class implements a generic bounded queue using an array. - `DEFCAP` is a
```java
public class ArrayUnboundedQueue<T> implements QueueInterface<T>
{
    protected final int DEFCAP = 100; // default capacity
    protected T[] elements;           // array that holds queue elements
    protected int origCap;            // original capacity
    protected int numElements = 0;    // number of elements in this queue
    protected int front = 0;          // index of front of queue
    protected int rear;               // index of rear of queue

    public ArrayUnboundedQueue()
    {
        elements = (T[]) new Object[DEFCAP];
        rear = DEFCAP - 1;
        origCap = DEFCAP;
    }

    public ArrayUnboundedQueue(int origCap)
    {
        elements = (T[]) new Object[origCap];
        rear = origCap - 1;
        this.origCap = origCap;
    }

    private void enlarge()
    // Increments the capacity of the queue by an amount
    // equal to the original capacity.
    {
        // create the larger array
        T[] larger = (T[]) new Object[elements.length + origCap];

        // copy the elements from the smaller array into the larger array
        int currSmaller = front;
        for (int currLarger = 0; currLarger < numElements; currLarger++)
        {
            larger[currLarger] = elements[currSmaller];
            currSmaller = (currSmaller + 1) % elements.length;
        }

        // update instance variables
        elements = larger;
        front = 0;
        rear = numElements - 1;
    }

    public void enqueue(T element)
    // Adds element to the rear of this queue.
    {
        if (numElements == elements.length)
            enlarge();

        rear = (rear + 1) % elements.length;
        elements[rear] = element;
        numElements = numElements + 1;
    }

    public T dequeue()
    // Throws QueueUnderflowException if this queue is empty;
    // otherwise, removes front element from this queue and returns it.
    {
        if (isEmpty())
            throw new QueueUnderflowException("Dequeue attempted on empty queue.");
        else
        {
            T toReturn = elements[front];
            elements[front] = null;
            front = (front + 1) % elements.length
Transcribed Image Text:```java public class ArrayUnboundedQueue<T> implements QueueInterface<T> { protected final int DEFCAP = 100; // default capacity protected T[] elements; // array that holds queue elements protected int origCap; // original capacity protected int numElements = 0; // number of elements in this queue protected int front = 0; // index of front of queue protected int rear; // index of rear of queue public ArrayUnboundedQueue() { elements = (T[]) new Object[DEFCAP]; rear = DEFCAP - 1; origCap = DEFCAP; } public ArrayUnboundedQueue(int origCap) { elements = (T[]) new Object[origCap]; rear = origCap - 1; this.origCap = origCap; } private void enlarge() // Increments the capacity of the queue by an amount // equal to the original capacity. { // create the larger array T[] larger = (T[]) new Object[elements.length + origCap]; // copy the elements from the smaller array into the larger array int currSmaller = front; for (int currLarger = 0; currLarger < numElements; currLarger++) { larger[currLarger] = elements[currSmaller]; currSmaller = (currSmaller + 1) % elements.length; } // update instance variables elements = larger; front = 0; rear = numElements - 1; } public void enqueue(T element) // Adds element to the rear of this queue. { if (numElements == elements.length) enlarge(); rear = (rear + 1) % elements.length; elements[rear] = element; numElements = numElements + 1; } public T dequeue() // Throws QueueUnderflowException if this queue is empty; // otherwise, removes front element from this queue and returns it. { if (isEmpty()) throw new QueueUnderflowException("Dequeue attempted on empty queue."); else { T toReturn = elements[front]; elements[front] = null; front = (front + 1) % elements.length
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Depth First Search
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
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education