package com.interview.basics.model.collection.queue; /** * Created_By: stefanie * Date: 14-7-13 * Time: 下午10:13 */ public class FixCapabilityArrayQueue<T> implements Queue<T> { protected int N = 10; protected T[] array = (T[]) new Object[N]; protected int head = 0; protected int tail = 0; protected int size = 0; public FixCapabilityArrayQueue(int n){ this.N = n; } public FixCapabilityArrayQueue(){ } @Override public void push(T item) { if(size < N){ array[tail] = item; tail = (tail+1) % N; size++; } else { System.err.println("Stack is full"); } } @Override public T pop() { if(size == 0){ return null; } else { T element = array[head]; head = (head + 1) % N; size--; return element; } } @Override public T peek() { if(size == 0) return null; else return array[head]; } @Override public boolean isEmpty() { return size == 0; } @Override public int size() { return size; } }