升序插入之后有多高

升序插入之后有多高

把 13、15、17、23、24 按升序依次插入。运行下面这段程序: class BNode: def __init__(self, val): self.val = val

阅读更多 →
平衡树要保证的是什么

平衡树要保证的是什么

各种平衡树(AVL、红黑树)要保证的是【0】。

阅读更多 →
退化成直线之后查找变成多少

退化成直线之后查找变成多少

BST 退化成一条直线之后,查找的复杂度变成【0】。

阅读更多 →
按从小到大的顺序插进去会怎样

按从小到大的顺序插进去会怎样

把一批数按升序依次插进 BST,长出来的是【0】。

阅读更多 →
三种情况删完,中序还得是升序

三种情况删完,中序还得是升序

同一个 remove,把三种情况连着删一遍:先删叶子 13、再删单孩子 15、最后删双孩子 17。 删完之后中序走一遍,把剩下的数按顺序拼起来输出(用 / 隔开)。

阅读更多 →
自己写:右子树里最小的顶上来

自己写:右子树里最小的顶上来

同一个 remove,这次删 17——它左右都有孩子,是最难的一种。 删完之后输出新的根是几。

阅读更多 →
自己写:让唯一的孩子顶上来

自己写:让唯一的孩子顶上来

同一个 remove,这次删 15——它只有左孩子 13。 删完之后输出根的左边是几(13 应该顶了上来)。

阅读更多 →
自己写:把叶子摘掉

自己写:把叶子摘掉

补全 remove:用递归删掉 val,返回新的根。这次删的是叶子 13。 删完之后输出中序的第一个。

阅读更多 →
删掉 15 之后 13 挂在谁下面

删掉 15 之后 13 挂在谁下面

15 只有一个孩子(13)。运行下面这段程序: class BNode: def __init__(self, val): self.val = val sel

阅读更多 →
删一个有两个孩子的

删一个有两个孩子的

要删的节点左右都有孩子,标准做法是【0】。

阅读更多 →