1  #ifndef QUEUE_H
  2  #define QUEUE_H
  3  #include "LinkedList.h"
  4  #include <stdexcept>
  5  using namespace std;
  6  
  7  template<typename T>
  8  class Queue
  9  {
 10  public:
 11    Queue();
 12    void enqueue(T element);
 13    T dequeue() throw (runtime_error);
 14    int getSize() const;
 15  
 16  private:
 17    LinkedList<T> list;
 18  };
 19  
 20  template<typename T>
 21  Queue<T>::Queue()
 22  {
 23  }
 24  
 25  template<typename T>
 26  void Queue<T>::enqueue(T element)
 27  {
 28    list.addLast(element);
 29  }
 30  
 31  template<typename T>
 32  T Queue<T>::dequeue() throw (runtime_error)
 33  {
 34    return list.removeFirst();
 35  }
 36  
 37  template<typename T>
 38  int Queue<T>::getSize() const
 39  {
 40    return list.getSize();
 41  }
 42  
 43  #endif