I'm working on coding an array implementation of a queue in Java. The implementation should have the following features: The array has a head which marks the item least recently inserted. The array has a tail which marks* the item most recently inserted. Enqueue() adds an item to the tail of the array. Dequeue() removes an item from the head of the array. The array will resize() dynamically as it gets too small or too large. Size() returns the size of the queue from head to tail. IsEmpty() returns whether or not the queue contains anything at all. You start out by initializing an empty array. It looks like this: [0] null (head / tail) So at the beginning, the head is set to zero. I guess the tail can also be zero. Then you enqueue. [0] "To" (head / tail) So the first time you try to enqueue, the head is null. Fill the head. Now you want the tail to move up. H...