二叉搜索树中的每个结点,若它的左子树存在,则其左子树中所有结点的结点值均小于该结点结点值,其右子树中所有结点的结点值均大于该结点结点值。如下图,左图是一棵二叉搜索树,右图因为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 };
浙公网安备 33010602011771号