清华大学出版社出版的c++程序设计课本
源代码在线查看: 9-11.h
//9-11.h
#ifndef TREENODE_CLASS
#define TREENODE_CLASS
#ifndef NULL
const int NULL = 0;
#endif // NULL
template
class TreeNode
{
private:
TreeNode *left; //左指针
TreeNode *right; //右指针
public:
T data; //结点数据
// 构造函数
TreeNode (const T& item, TreeNode *lptr = NULL,
TreeNode *rptr = NULL);
// 访问指针域的函数
TreeNode* Left(void) const; //取得左指针
TreeNode* Right(void) const; //取得右指针
// 删除当前结点的左右子树
void release();
};
// 构造函数,初始化数据域和指针域
template
TreeNode::TreeNode (const T& item, TreeNode *lptr,
TreeNode *rptr): data(item), left(lptr), right(rptr)
{}
//取得左指针
template
TreeNode* TreeNode::Left(void) const
{
return left;
}
//取得右指针
template
TreeNode* TreeNode::Right(void) const
{
return right;
}
// 删除当前结点的左右子树
template
void TreeNode::release()
{
if(left)
{ //删除左子树
left->release();
delete left;
left=NULL;
}
if(right)
{ //删除右子树
right->release();
delete right;
right=NULL;
}
}
#endif // TREENODE_CLASS