1
// Template TreeNode
class definition.
2
#ifndef TREENODE_H
3
#define TREENODE_H
4
5
// forward declaration of
class Tree
6
template< typename
NODETYPE > class Tree;
7
8
// TreeNode
class-template definition
9
template< typename
NODETYPE >
10
class TreeNode
11
{
12
friend class Tree< NODETYPE >;
13
public:
14
// constructor
15
TreeNode( const NODETYPE &d )
16
: leftPtr( 0 ), // pointer to left
subtree
17
data( d ), // tree node data
18
rightPtr( 0 ) // pointer to right
substree
19
{
20
// empty body
21
} // end TreeNode constructor
22
23
// return copy of node's data
24
NODETYPE getData() const
25
{
26
return data;
27
} // end getData function
28
private:
29
TreeNode< NODETYPE > *leftPtr; //
pointer to left subtree
30
NODETYPE data;
31
TreeNode< NODETYPE > *rightPtr; //
pointer to right subtree
32
}; // end class TreeNode
33
34
#endif