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

• A queue is a collection of items supportng three operations: – enqueue (item):

ID: 3683270 • Letter: #

Question

• A queue is a collection of items supportng three operations:

– enqueue (item): add item to the “front” of the queue
– dequeue(): removes the “last” item from the queue (the one

that’s been in the queue the longest) and returns it

– empty(): returns True if the stack is empty, else False

Note: stacks are “LIFO” (last-in-first-out), queues are “FIFO” (first-in-first-out)

Implement and test Queue class. Submit to dropbox: .py file containing Queue class and a funcGon testQueue() that demonstrates use of the class.

Explanation / Answer

import java.util.ArrayList;

import java.util.List;

public class DoubleEndedQueueImpl {

    private List<Integer> deque = new ArrayList<Integer>();

     

    public void insertFront(int item){

        //add element at the beginning of the queue

        System.out.println("adding at front: "+item);

        deque.add(0,item);

        System.out.println(deque);

    }

     

    public void insertRear(int item){

        //add element at the end of the queue

        System.out.println("adding at rear: "+item);

        deque.add(item);

        System.out.println(deque);

    }

     

    public void removeFront(){

        if(deque.isEmpty()){

            System.out.println("Deque underflow!! unable to remove.");

            return;

        }

        //remove an item from the beginning of the queue

        int rem = deque.remove(0);

        System.out.println("removed from front: "+rem);

        System.out.println(deque);

    }

     

    public void removeRear(){

        if(deque.isEmpty()){

            System.out.println("Deque underflow!! unable to remove.");

            return;

        }

        //remove an item from the beginning of the queue

        int rem = deque.remove(deque.size()-1);

        System.out.println("removed from front: "+rem);

        System.out.println(deque);

    }

     

    public int peakFront(){

        //gets the element from the front without removing it

        int item = deque.get(0);

        System.out.println("Element at first: "+item);

        return item;

    }

     

    public int peakRear(){

        //gets the element from the rear without removing it

        int item = deque.get(deque.size()-1);

        System.out.println("Element at rear: "+item);

        return item;

    }

     

    public static void main(String a[]){

         

        DoubleEndedQueueImpl deq = new DoubleEndedQueueImpl();

        deq.insertFront(34);

        deq.insertRear(45);

        deq.removeFront();

        deq.removeFront();

        deq.removeFront();

        deq.insertFront(21);

        deq.insertFront(98);

        deq.insertRear(5);

        deq.insertFront(43);

        deq.removeRear();

    }

}

output : -

adding at front: 34

[34]

adding at rear: 45

[34, 45]

removed from front: 34

[45]

removed from front: 45

[]

Deque underflow!! unable to remove.

adding at front: 21

[21]

adding at front: 98

[98, 21]

adding at rear: 5

[98, 21, 5]

adding at front: 43

[43, 98, 21, 5]

removed from front: 5

[43, 98, 21]