public class Queue<T extends Comparable<T>>
{
  LL<T> theQueue;

  public Queue()
  {
    this.theQueue = new LL<T>();
  }

   public boolean isEmpty()
   {
     return this.theQueue.isEmpty();
   }

  public boolean isFull()
  {
    return false;
  }

  public T dequeue() throws LLException
  {
    return this.theQueue.removeFromHead();
  }

  public void enqueue(T value)
  {
    this.theQueue.insertAtTail(value);
  }

  public String toString()
  {
    return this.theQueue.toString();
  }


  public static void main(String args[]) throws LLException
  {
    Queue<Double> q = new Queue<Double>();
    for(int i = 0; i < 10; i++)
    {
      q.enqueue(2.0*i);
    }
    while(!q.isEmpty())
    {
      System.out.println(q.dequeue());
    }
  }
}
