问题描述
如果我按照下面的方法构造一个二叉搜索树,对吗?还是这样的树不是有效的二进制搜索树?
7
/ \
5 8
/ \
4 10
因为我遵循了左侧较小元素和右侧较大元素的规则。所以我想这是一个二进制搜索树?
解决方法
尝试手动走树;假装您是正在寻找4.的函数。
- 您从树的根部开始:7。
- 4小于7,所以您左移至5。
- 4小于5,所以您再次左走。
- 那里什么也没有,所以您得出的结论是树上没有4。
当然这是不正确的,所以不,这不是BST的有效设置。并非每个值都只需要相对于其直接父级位于正确的位置即可。每个值还必须相对于树中的其他节点处于正确的位置。
确切位置取决于每个值的插入顺序,但是在这种值配置下,4应该位于5的左侧。
,这绝对是一棵二叉树,因为每个节点只有两片叶子。
但是就像其他人所说的,它不是二叉搜索树。一种判断方法是对于每个节点,所有左叶子的值应小于自身的值,所有右叶子的值应大于自身的值。只有这样才能执行二进制搜索。