KBinTreeNode.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /* 二叉树(二叉树也可用于创建普通树)结点
  2.  * QA Pass
  3.  */
  4. #ifndef TREENODE_CLASS
  5. #define TREENODE_CLASS
  6. #include <stdlib.h>
  7. template <class T>
  8. class BinSTree;
  9. template <class T>
  10. class TreeNode
  11. {
  12.    protected:
  13.       // 指向结点左右孩子的指针
  14.       TreeNode<T> *left;
  15.       TreeNode<T> *right;
  16.    public:
  17.       // 公有成员,允许外部修改的数据值
  18.       T data;
  19.    
  20.       // 构造函数
  21.   TreeNode (const T& item, TreeNode<T> *lptr = NULL,
  22.                 TreeNode<T> *rptr = NULL);
  23.    
  24.       // 访问指针域的函数
  25.       TreeNode<T>* Left(void) const;
  26.       TreeNode<T>* Right(void) const;
  27.       friend class BinSTree<T>;
  28. };
  29. // 构造函数,初始化结点的数据和指针域,对于空子树,将其指针域赋值为 NULL
  30. template <class T>
  31. TreeNode<T>::TreeNode (const T& item, TreeNode<T> *lptr,
  32.     TreeNode<T> *rptr): data(item), left(lptr), right(rptr)
  33. {}
  34. // 允许用户访问左孩子
  35. template <class T>
  36. TreeNode<T>* TreeNode<T>::Left(void) const
  37. {
  38.    return left;
  39. }
  40. // 允许用户访问右孩子
  41. template <class T>
  42. TreeNode<T>* TreeNode<T>::Right(void) const
  43. {
  44.    return right;
  45. }
  46. #endif // TREENODE_CLASS