import java.util.*;
/**
*
class Queue is a simple implementation of a queue
* data structure.
*
* @author G.D.Thurman
* @version 99.09.26
*/
public class Queue implements Csxxx_Containers {
private Vector elems;
public Queue() { this(DFLT_NELEMENTS); }
public Queue(int len) { elems = new Vector(len); }
public void enqueue(Object elem) { elems.addElement(elem); }
public Object dequeue() {
Object obj = front();
if (obj != null) elems.removeElementAt(0);
return obj;
}
public Object front() {
return elems.size() == 0 ? null : elems.elementAt(0);
}
/* interfaces */
public int capacity() { return elems.capacity(); }
public int size() { return elems.size(); }
public boolean isEmpty() { return elems.size() == 0; }
public boolean isFull() { return elems.size() == elems.capacity(); }
public void clear() { elems.removeAllElements(); }
public String toString() {
int size = elems.size();
String s = new String("queue contents:" + "\n" +
"===============\n");
for (int i = 0; i < size; i++)
s += "\t" + elems.elementAt(i) + "\n";
s += "size: " + elems.size() + "; capacity: " + elems.capacity();
return s;
}
public static void main(String[] argv) {
Queue q = new Queue();
for (int i = 0; i < argv.length; i++) q.enqueue(argv[i]);
System.out.println(q);
if (!q.isEmpty()) {
System.out.println("\ndequeue: " + q.dequeue());
System.out.println("front: " + q.front());
System.out.println("size: " + q.size());
System.out.println("capacity: " + q.capacity());
}
q.clear();
System.out.println("\n*** queue cleared\n\n" + q);
}
}