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

I need help learning how to create these methods.*************** I cannot use a

ID: 3803893 • Letter: I

Question

I need help learning how to create these methods.*************** I cannot use a import whatsoever**************

public class BaseDeque<Item> implements Deque<Item> {

  
  
   @Override
   public void enqueueFront(Item element) {
      

   }

   @Override
   public void enqueueBack(Item element) {
  
   }

   @Override
   public Item dequeueFront() throws NoSuchElementException {
  
       return null;
   }

   @Override
   public Item dequeueBack() throws NoSuchElementException {

       return null;
   }

   @Override
   public Item first() throws NoSuchElementException {

       return null;
   }

   @Override
   public Item last() throws NoSuchElementException {
       // TODO Auto-generated method stub
       return null;
   }

   @Override
   public boolean isEmpty() {
      
           return false;
      
   }

   @Override
   public int size() {

       return 0;
   }

Explanation / Answer

public class BaseDeque<Item> implements Deque<Item> {

    private int count;
    private LinearDoubleNode<T> firstNode, lastNode;

    public BaseDeque()
    {
        count = 0;
        firstNode = null;
        lastNode = null;
    }
  
  
    @Override
    public void enqueueFront(Item element) {

        LinearDoubleNode newNode = new LinearDoubleNode();
            newNode.setElement(element);
            if(isEmpty()){

                lastNode = newNode;
                firstNode = newNode;
            }
            else {
                LinearDoubleNode second=firstNode;
                firstNode=newNode;
                firstNode.setNext(second);
                second.setPrev(firstNode);
               // firstNode.setPrev(newNode);

            }

            count++;
      

    }

    @Override
    public void enqueueBack(Item element) {

        if (element==null) throw new NullPointerException("cannot add null to the list");

            LinearDoubleNode<Item> node = new LinearDoubleNode<Item>(element);
            node.setElement(element);
            if (isEmpty()){
                firstNode = node;
                lastNode=node;}
            else{
                LinearDoubleNode<Item> before=lastNode;
                lastNode=node;
                before.setNext(lastNode);
                lastNode.setPrev(before);
            }


            count++;
  
    }

    @Override
    public Item dequeueFront() throws NoSuchElementException {

  
        Item front = null;
            if (count==1){
                front=firstNode.getElement();
                firstNode=null;
                lastNode=null;
                count--;
            }
            else if (!isEmpty()) {
                count--;
                front = firstNode.getElement();
                firstNode = firstNode.getNext();
            }

            return front;
    }

    @Override
    public Item dequeueBack() throws NoSuchElementException {

        Item back = null;
            if (count==1){
                back = lastNode.getElement();
                lastNode = null;
                firstNode = null;
                count--;
            }
             else if (!isEmpty()) {
                count--;
                back = lastNode.getElement();
                lastNode = lastNode.getPrev();
                lastNode.setNext(null);
            }
            return back;

    }

    @Override
    public Item first() throws NoSuchElementException {

        return firstNode.getElement();
    }

    @Override
    public Item last() throws NoSuchElementException {
        return lastNode.getElement();
    }

    @Override
    public boolean isEmpty() {
      
           return count==0;
      
    }

    @Override
    public int size() {

       return count;
    }
}

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