template <class T>
class leftist_tree
{

public:
  
  leftist_tree();
  ~leftist_tree();
  leftist_tree(const leftist_tree &);
  leftist_tree & operator=(const leftist_tree &);

  void push(const T &);
  void pop();
  const T & top();
  bool empty();

  void merge(leftist_tree &);
};

