// Fig. 15.16: treenode.h // Definition of class TreeNode #ifndef TREENODE_H #define TREENODE_H template< class NODETYPE > class Tree; // forward declaration template< class NODETYPE > class TreeNode { friend class Tree< NODETYPE >; public: TreeNode( const NODETYPE &d ) : leftPtr( 0 ), data( d ), rightPtr( 0 ) { } NODETYPE getData() const { return data; } int getFreq() const { return frequency; } private: TreeNode< NODETYPE > *leftPtr; // pointer to left subtree NODETYPE data; int frequency; TreeNode< NODETYPE > *rightPtr; // pointer to right subtree }; #endif