
Concept explainers
/**
* CircularArrayQueue represents an array implementation of a queue in
* which the indexes for the front and rear of the queue circle back to 0
* when they reach the end of the array.
*
* @author ITSC2214
* @version 4.0
*/
public class CircularArrayQueue<T> implements QueueADT<T>
{
private final static int DEFAULT_CAPACITY = 100;
private int front, rear, count;
private T[] queue;
/**
* Creates an empty queue using the specified capacity.
* @param initialCapacity the initial size of the circular array queue
*/
public CircularArrayQueue (int initialCapacity)
{
front = rear = count = 0;
queue = (T[]) (new Object[initialCapacity]);
}
/**
* Creates an empty queue using the default capacity.
*/
public CircularArrayQueue()
{
this(DEFAULT_CAPACITY);
}
/**
* Adds the specified element to the rear of this queue, expanding
* the capacity of the queue array if necessary.
* @param element the element to add to the rear of the queue
*/
public void enqueue(T element)
{
if (size() == queue.length)
expandCapacity();
queue[rear] = element;
//TODO Update the rear variable correspondently
count++;
}
/**
* Creates a new array to store the contents of this queue with
* twice the capacity of the old one.
*/
private void expandCapacity()
{
T[] larger = (T[]) (new Object[queue.length *2]);
for (int scan = 0; scan < count; scan++)
{
larger[scan] = queue[front];
front = (front + 1) % queue.length;
}
front = 0;
rear = count;
queue = larger;
}
/**
* Removes the element at the front of this queue and returns a
* reference to it.
* @return the element removed from the front of the queue
* @throws EmptyCollectionException if the queue is empty
*/
public T dequeue() throws EmptyCollectionException
{
if (isEmpty())
throw new EmptyCollectionException("queue");
T result = queue[front];
queue[front] = null;
//TODO Update the front variable correspondently
count--;
return result;
}
/**
* Returns a reference to the element at the front of this queue.
* The element is not removed from the queue.
* @return the first element in the queue
* @throws EmptyCollectionException if the queue is empty
*/
public T first() throws EmptyCollectionException
{
if (isEmpty())
throw new EmptyCollectionException("queue");
// To be completed as a Programming Project
return queue[front];
}
/**
* Returns true if this queue is empty and false otherwise.
* @return true if this queue is empty
*/
public boolean isEmpty()
{
if (count == 0)
return true;
else
return false;
}
/**
* Returns the number of elements currently in this queue.
* @return the size of the queue
*/
public int size()
{
return count;
}
/**
* Returns a string representation of this queue.
* @return the string representation of the queue
*/
public String toString()
{
String txt = "Number of elements in queues:" + this.size() + "\n";
// Scan and print elements in the queue in the order of front through rear
for (int i = 0; i < this.size(); i++){
// TODO Fill in an expression to retrieve the index of the i-th element in the order of front through rear
txt += queue[(front + i) % queue.length].toString() + "\n";
}
return txt;
}
}


Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 1 images

- For the Queue use the java interface Queue with the ArrayDeque classFor the Stack use the java Deque interface with the ArrayDeque classFor the LinkedList, use the java LinkedList class Also, when you are asked to create and use a Queue, you can use only those methods pertaining to the general operations of a queue (Enqueue: addLast, Dequeue: removeFirst, and peek() Similarly, when you are asked to create and/or use a stack, you can use only those methods pertaining to the general operations of a Stack (push: addFirst, pop:removeFirst, and peek() ) Your code should not only do the job, but also it should be done as efficiently as possible: fast and uses no additional memory if at all possible Questions Write a method “int GetSecondMax(int[] array)” . this method takes an array of integers and returns the second max value Example: if the array contains: 7, 2, 9, 5, 4, 15, 6, 1}. It should return the value: 9arrow_forwardStack, Queue and Deque5.1. Understand the basic operations for Stack, Queue and DequeExample: Suppose that Queue q is implemented by a circular array data with the size 3. Please drawthe state of the Queue q and circular array data after each of the following steps.1) Queue q = new Queue();2) q.enqueue(5);3) q.enqueue (2);4) q.enqueue (9);arrow_forwardPlease written by computer source In java please!arrow_forward
- In C++, – Implement a Priority queue using a SORTED list. Use Quick sort after adding a new node. Create a class called Node: Have a Name and Priority.Data set - 1 is the highest priority, 10 is lowest priority.Enqueue and dequeue in the following order.Function Name, PriorityEnqueue Joe, 3Enqueue Fred, 1Enqueue Tuyet, 9Enqueue Jose, 6DequeueEnqueue Jing, 2Enqueue Xi, 5Enqueue Moe, 3DequeueEnqueue Miko, 7Enqueue Vlady, 8Enqueue Frank, 9Enqueue Anny, 3DequeueEnqueue Xi, 2Enqueue Wali, 2Enqueue Laschec, 6Enqueue Xerrax, 8DequeueDequeueDequeueDequeueDequeueDequeueDequeueDequeueDequeueDequeueDequeuearrow_forwardJava Implement Stack using Deque (doubly linked list) You must create an array and the user can insert elements into this array and can only access or remove the newly inserted element from the array. The array is executed using a doubly linked list. The following Project should have these classes: 1. Class Book: The main Node for the deque array where it should have the following attributes besides (next, prev nodes): a) Book Id b) Book Name c) Book Author 2. Class Booklists: Where all the main operations are done. You need to apply these following operations: 1) AddBook() [push(0) : The method Inserts the book object into deque Stack (form the last). 2) RemoveBook() [pop()] : This method extracts an object from the last of the Deque stack and it removes it. If such object does not exist, the method returns null.(from the last) 3) isEmpty() : Return True if deque stack is Empty else return False. 4) DisplayAlIBooks() : Print all the books in the deque stack. 5) getlistsize(): Return…arrow_forwardPython: Written without libraries method find_ansestors , that takes in an index i and returns all ancestors of node located at index i. What is the time complexity of your function? class ArrayBinaryTree: def __init__(self): self._heap = [] def find_ancestors(self, i: int): if(i==0): return;arrow_forward
- in java pls and thank you!arrow_forwardQuestion 1 Analyze the following code: import java.util.*: public class Test { public static void main (String[] args){ PriorityQueue queue = new PriorityQueue( Arrays.asList (60, 10, 50, 30, 40, 20)): while (!queue.isEmpty()) System.out.print(queue.poll () + " "); O The program displays 10 20 30 40 50 60 O The program displays 60 50 40 30 20 10 The program displays 60 10 50 30 40 20 O There is no guarantee that the program displays 10 20 30 40 50 60 A Moving to the next question prevents changes to this answerarrow_forwardIf the following is a circular array based queue of size 99 43 54 76 93 77 18 If rear is at index 1 and front is at index 6, what is the size of the queue? Answer:arrow_forward
- print the even numbers followed by ödd oh Ex4) Given the file pointerlmofQueue.java then write a main method: to - add some elements into the queue, - reverse the queue contents, (Hint use an array) - print the queue contents.arrow_forwardChange the __str__ method of the Queue class (provided below) so that it prints each object in the queue along with its order in the queue (see sample output below). class Queue(): def __init__(self): self.queue = [] # implement with Python lists! # start of physical Python list == front of a queue # end of physical Python list == back of a queue def enqueue(self, new_obj): self.queue.append(new_obj); def dequeue(self): return self.queue.pop(0) def peek(self): return self.queue[0] def bad_luck(self): return self.queue[-1] def __str__(self): return str(self.queue) # let's try a more fun waySample output: >>> my_queue = Queue()>>> everyone = ["ESC", "ABC", "YOLO", "HTC"]>>> for initials in everyone:>>> my_queue.enqueue(initials)>>> print(my_queue)Output: 1: ESC2: ABC3: YOLO4: HTCarrow_forwardSimple JAVA linkedlist code implementation please help and complete any part you can - Without using the java collections interface (ie do not import java.util.List,LinkedList, Stack, Queue...)- Create an implementation of LinkedList interface- For the implementation create a tester to verify the implementation of thatdata structure performs as expected Build Bus Route – Linked List- Your task is to:o Implement the LinkedList interface (fill out the implementation shell)o Put your implementation through its paces by exercising each of themethods in the test harnesso Create a client (a class with a main) ‘BusClient’ which builds a busroute by performing the following operations on your linked list:o§ Create (insert) 4 stations§ List the stations§ Check if a station is in the list (print result)• Check for a station that exists, and onethat doesn’t§ Remove a station§ List the stations§ Add a station before another station§ List the stations§ Add a station after another station§ Print the…arrow_forward
- 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





