// tree.h
#include "node.cpp"

template<class type>
class tree
{
	public:
					tree();
		bool	 		is_empty() const;
		void 			build_root(type someitem);
		node<type>	*root()const;  // root() returns a pointer to a node

	protected:
		node<type>	*root_ptr;
};

// Notes

// root_ptr is protected rather than private so that it will be available
// to bstree which will be a descendant of tree

// The root method returns allows access to the value of root_ptr

// A tree object will have a pointer to its root and methods that allow
// a) initialization of root_ptr to NULL through the constructor
// b) checking to see if a tree is empty
// c) creation of a root node
// d) retrieval of root_ptr

