二叉搜索树原理及C++模板实现

二叉搜索树中的每个结点,若它的左子树存在,则其左子树中所有结点的结点值均小于该结点结点值,其右子树中所有结点的结点值均大于该结点结点值。如下图,左图是一棵二叉搜索树,右图因为6的左子树中的结点7大于6,所以不是二叉搜索树。

 1 template<class Item>
 2 struct  BinaryTreeNode            //二叉树结点
 3 {
 4     Item tree_value;            //结点值,这里使用了模板,泛型编程
 5     BinaryTreeNode* pLeft;        //左子结点指针
 6     BinaryTreeNode* pRight;        //右子结点指针
 7     BinaryTreeNode(Item itemval, BinaryTreeNode* pleft=nullptr, BinaryTreeNode* pright=nullptr)
 8     {
 9         tree_value = itemval;
10         pLeft = pleft;
11         pRight = pright;
12     }
13 };

 

posted on 2020-09-18 17:39  destiny_faith  阅读(67)  评论(0)    收藏  举报