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.
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
Related questions
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](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F1b2c1e36-9974-49eb-8a0c-fe4d3c635f06%2F284c88fa-e731-488c-99c5-a84ea198b183%2F1bnapoe_processed.png&w=3840&q=75)
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](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F1b2c1e36-9974-49eb-8a0c-fe4d3c635f06%2F284c88fa-e731-488c-99c5-a84ea198b183%2F50weo3_processed.png&w=3840&q=75)
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

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps

Knowledge Booster
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.Recommended textbooks for you

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

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