#include "List.h"

template <class Elem>
class Stack {
  Stack() : elems(new List<Elem>) {}

  void push(Elem anElement) {
    elems->addFirst(anElement);
  }
  void pop() { elems->removeFirst(); }
  Elem top() { elems->first(); }
  
private:
  List<Elem> *elems;
};
