Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Java: Deque A deque is what we consider a double-ended queue. With this data str

ID: 3814098 • Letter: J

Question

Java: Deque

A deque is what we consider a double-ended queue. With this data structure, we can add and remove items in the queue from both ends. Specifically, the deque has the following operations:

1. push(x) - Insert item x on the front end of the deque.

2. pop() - Remove the front item from the deque and return it.

3. inject(x) - Insert item x on the rear end of the queue.

4. eject() - Remove the rear item from the deque and return it.

Implement a Deque class that supports these operations. Each of these operations should take O(1) time. For the purposes of this project, also implement a print() method that prints the contents of the deque on one line. An iterator must be used in this method. You may use LinkedList from java libary but you may not use Deque from java library. Finally, implement a client that tests all of the deque operations.

Explanation / Answer

Please find the required solution: ---------------------------------- import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class DequeList { private List deque; DequeList() { deque = new LinkedList(); } // Insert item x on the front end of the deque. public void push( int x ) { deque.add(0, x); } // Insert item x on the rear end of the queue public void inject( int x ) { deque.add(x); } // Remove the front item from the deque and return it public int pop() { if( deque.isEmpty() ) { System.out.println("Deque is empty......."); return Integer.MIN_VALUE; } return deque.remove(0); } // Remove the rear item from the deque and return it. public int eject() { if( deque.isEmpty() ) { System.out.println("Deque is empty......."); return Integer.MIN_VALUE; } return deque.remove(deque.size() - 1); } //Print the contents of dequeue using iterator void print() { System.out.println("Deque contents...................."); if( deque.isEmpty() ) { System.out.println("Deque is empty......."); } Iterator iter = deque.iterator(); while( iter.hasNext() ) { System.out.println(iter.next()); } } //Test method public static void main( String[] args ) { DequeList deq = new DequeList(); deq.push(10); System.out.println("After inserting 10 at front"); deq.print(); deq.inject(20); System.out.println("After inserting 20 at rear"); deq.print(); System.out.println("After removing first element"); deq.pop(); deq.print(); System.out.println("After removing first element"); deq.pop(); deq.print(); System.out.println("After removing first element from empty dequeue"); deq.pop(); deq.print(); System.out.println("After inserting 30 at front"); deq.push(30); deq.print(); System.out.println("After inserting 40 at front"); deq.push(40); deq.print(); System.out.println("After inserting 50 at rear"); deq.inject(50); deq.print(); System.out.println("After inserting 60 at front"); deq.push(60); deq.print(); System.out.println("After removing last"); deq.eject(); deq.print(); } } Sample test output with client: After inserting 10 at front Deque contents.................... 10 After inserting 20 at rear Deque contents.................... 10 20 After removing first element Deque contents.................... 20 After removing first element Deque contents.................... Deque is empty....... After removing first element from empty dequeue Deque is empty....... Deque contents.................... Deque is empty....... After inserting 30 at front Deque contents.................... 30 After inserting 40 at front Deque contents.................... 40 30 After inserting 50 at rear Deque contents.................... 40 30 50 After inserting 60 at front Deque contents.................... 60 40 30 50 After removing last Deque contents.................... 60 40 30
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote