树——二叉树的存储结构与结点实现

1,本文目标:

 

       1,完成二叉树结点的存储结构设计;

             

2,设计要点:

       1,BTree 为二叉树结构,每个结点最多只有两个后继结点;

       2,BTreeNode 只包含 4 个固定的共有成员;

              1,一个数据成员,两个指向后继结点的指针成员,指向父结点的指针成员;

              2,包含指向父结点的在一些场合是非常方便的一件事;求叶结点到根结点经历那些结点;

       3,实现树结构的所有操作(增,删,查,等);

              1,容器类型的数据结构;

             

3,BTreeNode 的设计与实现:

 

      

4,BTree 的设计与实现:

 

      

5,BTree (二叉树结构)的实现架构:

6,二叉树结点 BTreeNode 的创建:

 1 #ifndef BTREENODE_H
 2 #define BTREENODE_H
 3 
 4 #include "TreeNode.h"
 5 
 6 namespace DTLib
 7 {
 8 
 9 template < typename T >
10 class BTreeNode : public TreeNode<T>
11 {
12 public:
13     BTreeNode<T>* left;
14    BTreeNode<T>* right;
15 
16     BTreeNode()
17     {
18         left = NULL;
19         right = NULL;
20    }
21 
22     static BTreeNode<T>* NewNode() // 工厂模式
23     {
24         BTreeNode<T>* ret = new BTreeNode<T>();
25 
26         if( ret != NULL )  // 申请堆空间成功
27         {
28             ret->m_flag = true;
29         }
30 
31         return ret;
32     }
33 };
34 
35 }
36 
37 #endif // BTREENODE_H

猜你喜欢

转载自www.cnblogs.com/dishengAndziyu/p/10925398.html