Write the method addLast(). public class DoubleEndedQueue implements Queue {    private class Node    {        private T data;        private Node next;        public Node(T item)        {            data = item;            next = null;        }    }    private Node head;    private Node tail;      private int size;    public DoubleEndedQueue()    {        head = null;        tail = null;        size = 0;    }    public void addLast(T item)    {        // to be implemented    }    public T removeFirst()    {        if (size == 0)        {            return null;        }        T removed = head.data;        head = head.next;        if (size == 1)        {            tail = head;        }        size--;        return removed;    }    public T getFirst()    {        if (size == 0)        {            return null;        }        return head.data;    }    public boolean contains (T item)    {        Node current = head;        while (current!= null)        {            if (item.equals(current.data))            {                return true;            }            current = current.next;        }        return false;    }    public int size()    {        return size;    }    public String toString()    {        String s = "[";        Node current = head;        while (current != null)        {            s += current.data;            if (current.next != null)            {                s += ", ";            }            current = current.next;        }        return s + "]";    }    public Iterator iterator()    {        return new LinkedIterator();    }    private void checkForNull(T item)    {        if (item == null)        {            throw new IllegalArgumentException("null not a possible value!");        }    }    private class LinkedIterator implements Iterator    {        private Node position;            public LinkedIterator()        {            position = head;        }        public boolean hasNext()        {            return position!= null;        }        public T next()        {            if (hasNext())            {                T item = position.data;                position = position.next;                return item;            }            else            {                throw new NoSuchElementException ("Off end of list");            }        }        public void remove()        {            throw new UnsupportedOperationException();        }    } }

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
icon
Related questions
Question

Write the method addLast().

public class DoubleEndedQueue<T> implements Queue<T>
{
   private class Node
   {
       private T data;
       private Node next;

       public Node(T item)
       {
           data = item;
           next = null;
       }
   }

   private Node head;
   private Node tail;  
   private int size;

   public DoubleEndedQueue()
   {
       head = null;
       tail = null;
       size = 0;
   }

   public void addLast(T item)
   {
       // to be implemented
   }

   public T removeFirst()
   {
       if (size == 0)
       {
           return null;
       }

       T removed = head.data;
       head = head.next;

       if (size == 1)
       {
           tail = head;
       }

       size--;
       return removed;
   }

   public T getFirst()
   {
       if (size == 0)
       {
           return null;
       }

       return head.data;
   }

   public boolean contains (T item)
   {
       Node current = head;

       while (current!= null)
       {
           if (item.equals(current.data))
           {
               return true;
           }

           current = current.next;
       }

       return false;
   }

   public int size()
   {
       return size;
   }

   public String toString()
   {
       String s = "[";
       Node current = head;

       while (current != null)
       {
           s += current.data;

           if (current.next != null)
           {
               s += ", ";
           }

           current = current.next;
       }

       return s + "]";
   }

   public Iterator<T> iterator()
   {
       return new LinkedIterator();
   }

   private void checkForNull(T item)
   {
       if (item == null)
       {
           throw new IllegalArgumentException("null not a possible value!");
       }
   }

   private class LinkedIterator implements Iterator<T>
   {
       private Node position;    

       public LinkedIterator()
       {
           position = head;
       }

       public boolean hasNext()
       {
           return position!= null;
       }

       public T next()
       {
           if (hasNext())
           {
               T item = position.data;
               position = position.next;
               return item;
           }

           else
           {
               throw new NoSuchElementException ("Off end of list");
           }
       }

       public void remove()
       {
           throw new UnsupportedOperationException();
       }
   }
}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Adjacency Matrix
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.
Similar questions
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education