/*/////////////////////////////////////////////////////////////////////////////
	
	File	:	tree.h

	Author	:	Darren Boon

	Date	:	25/02/1997

/////////////////////////////////////////////////////////////////////////////*/

#include "node.cpp"

template<class type>
class tree
{
public:
				tree();
	Bool	 	is_empty() const;
	void 		build_root(type someitem);
	node<type>	*root() {return root_ptr;};  // 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

