Advertisement
daniel_079

ArrayQueue

Dec 11th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. package queue;
  2.  
  3. public class ArrayQueue {
  4.     private int head;
  5.     private int tail;
  6.     private Object[] queue = new Object[5];
  7.  
  8.     public int size() {
  9.         if (head > tail) {
  10.             return queue.length - head + tail;
  11.         } else {
  12.             return tail - head;
  13.         }
  14.     }
  15.  
  16.     public void enqueue(Object element) {
  17.         assert element != null;
  18.  
  19.         ensureCapacity(size() + 1);
  20.         queue[tail] = element;
  21.         tail = (tail + 1) % queue.length;
  22.     }
  23.  
  24.     private void ensureCapacity(int capacity) {
  25.         if (capacity < queue.length) {
  26.             return;
  27.         }
  28.  
  29.         Object[] newQueue = new Object[2 * capacity];
  30.         for (int i = 0; i < size(); i++) {
  31.             newQueue[i] = queue[i];
  32.         }
  33.         queue = newQueue;
  34.     }
  35.    
  36.     public Object element() {
  37.         assert size() > 0;
  38.        
  39.         return queue[head];
  40.     }
  41.    
  42.     public Object dequeue() {
  43.         assert size() > 0;
  44.        
  45.         Object x = queue[head];
  46.         head = (head + 1) % queue.length;
  47.         return x;
  48.     }
  49.    
  50.     public boolean isEmpty() {
  51.         return head == tail;
  52.     }
  53.    
  54.     public void clear() {
  55.         head = 0;
  56.         tail = 0;
  57.     }
  58.    
  59.     public void push (Object element) {
  60.        
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement