Guest User

Untitled

a guest
Feb 21st, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.99 KB | None | 0 0
  1. public class Queue<T>
  2. {
  3.     private Node<T> head;
  4.     private Node<T> tail;
  5.     private int size;
  6.    
  7.     private class Node<T>
  8.     {
  9.         private T thisElement;
  10.         private Node<T> nextElement;
  11.        
  12.         public Node(T thisElement, Node<T> nextElement)
  13.         {
  14.             this.thisElement = thisElement;
  15.             this.nextElement = nextElement;
  16.         }
  17.     }
  18.    
  19.     public Queue()
  20.     {
  21.         tail = new Node<T>(null, null);
  22.         head = new Node<T>(null, tail);
  23.         size = 0;
  24.     }
  25.    
  26.     // Utilities for queue
  27.     public boolean isEmpty()
  28.     {
  29.         return size == 0;
  30.     }
  31.    
  32.     public int size()
  33.     {
  34.         return size;
  35.     }
  36.        
  37.     //Insert an element
  38.     public boolean offer(T element)
  39.     {
  40.         if(size == 0)
  41.         {
  42.             head.thisElement = element;
  43.             size++;
  44.         }
  45.         else if(size == 1)
  46.         {
  47.             tail.thisElement = element;
  48.             size++;
  49.         }
  50.         else
  51.         {
  52.             Node<T> temp = new Node<T>(element, null);
  53.             tail.nextElement = temp;
  54.             tail = temp;
  55.             size++;
  56.         }
  57.        
  58.         return true;   
  59.     }
  60.    
  61.     //Return head but do not remove it, or null if size == 0
  62.     public T peek()
  63.     {
  64.         if(size == 0)
  65.         {
  66.             return null;
  67.         }
  68.         else
  69.         {
  70.             return head.thisElement;
  71.         }
  72.     }
  73.    
  74.     //Return head but do not remove it, or new Object if size == 0
  75.     @SuppressWarnings("unchecked")
  76.     public T element()
  77.     {
  78.         if(size == 0)
  79.         {
  80.             return (T) new Object();
  81.         }
  82.         else
  83.         {
  84.             return head.thisElement;
  85.         }
  86.     }
  87.    
  88.     //Return head and remove it, or null if size == 0
  89.     public T pool()
  90.     {
  91.         if(size == 0)
  92.         {
  93.             return null;
  94.         }
  95.         else if(size == 1)
  96.         {
  97.             size--;
  98.             return head.thisElement;
  99.         }
  100.         else
  101.         {
  102.             T tempElement = head.thisElement;
  103.             head = head.nextElement;
  104.             size--;
  105.             return tempElement;
  106.         }
  107.     }
  108.    
  109.     //Return head and remove it, or new Object if size  ==  0
  110.     @SuppressWarnings("unchecked")
  111.     public T remove()
  112.     {
  113.         if(size == 0)
  114.         {
  115.             return (T) new Object();
  116.         }
  117.         else if(size == 1)
  118.         {
  119.             size--;
  120.             return head.thisElement;
  121.         }
  122.         else
  123.         {
  124.             T tempElement = head.thisElement;
  125.             head = head.nextElement;
  126.             size--;
  127.             return tempElement;
  128.         }
  129.     }
  130. }
Add Comment
Please, Sign In to add comment