/** * A Queue (of Object objects) * * This implementation uses contiguous memory * * @version 1.0 * @author Prof. David Bernstein, James Madison University */ public class Queue { private int back; private Object[] contents; public static final int CAPACITY = 100; /** * Construct a new (empty) Queue */ public Queue() { back = -1; contents = new Object[CAPACITY]; } /** * Pop an Object off of the front of this Queue * * @return The Object at the front of this Queue */ public Object pop() { int i; Object value; if (back != -1) { value = contents[0]; // Shuffle for (i=0; i < back; i++) { contents[i] = contents[i+1]; } back = back - 1; } else { value = null; } return value; } /** * Push an Object onto the back of this Queue * * @param last The Object to push */ public void push(Object last) { if (back < CAPACITY-1) { back = back + 1; contents[back] = last; } } }