21 二叉搜索树的属性(1 / 2)

“等等,”Frank说,“错了。”

Socks刚刚插入了一个节点,他惊讶地抬起头,问道:“什么?”

“你刚刚插入的那个节点,”Frank说,“插错地方了。”

Socks盯着树:“但是63确实是大于60,所以需要将它加进右子树啊。”

<img src="/uploads/allimg/200412/1-2004120P923411.jpg"/>

“但是它比它的祖父节点61都要大,所以应该把它加入到61这个节点的右子树,你却把它加入了左子树。二叉搜索树的一个关键属性是左子树中的所有节点的值都小于当前节点的值,而右子树中的所有节点的值都要大于当前节点的值。”

“我知道。”Socks安静地说。

“那它为什么会在左子树中?”Frank问。

“我犯了一个错误。”Socks说。

“你为什么忘记将61与63进行比较?”Frank问。

“我……我是从60这个节点开始的。”Socks承认。

“什么?”

“嗯,我最近一次插入的节点是60……63和60比较接近……所以我刚刚从节点60开始,就将其插入到了60的下面。”

“你没有从树根开始?”Frank嚷道。

“我想这样会更快,”Socks说,“这样可以跳过树中大部分节点。”

“你最终把它放在了错误的地方!有多少个节点使用了这种投机取巧的方式?”