A Binary Search Tree Class - Design Pattern
Start from "scratch" - follow established pattern
template <typename T, class P = LessThan<T> >
class BST
{
public:
typedef T ValueType;
typedef P PredicateType;
typedef BSTNavigator < T , P > Navigator;
typedef BinaryTreeInorderIterator < Navigator > Iterator;
...
protected:
class Node
{
T value_;
Node * lchild_;
Node * rchild_;
Node (const T& t) : value_(t), lchild_(0), rchild_(0) {}
friend class BST<T,P>;
};
Node * root_;
PredicateType pred_;
};