children 的二进制搜索树删除过程
Binary Search Tree deletion procedure with children
不确定如何表达这个问题。基本上采取以下BST:
25
/ \
20 30
/ \ / \
18 23 27 31
/ \ /\
8 19 22 24
如果我要删除值 25 并在其位置旋转值 20,将 23 子树附加到 27 或将 30 子树附加到 24 更有意义吗?我不是说具体到这个案例,但是从更广泛的角度来看。
澄清一下,这两种安排之间哪个更可取:
20
/ \
18 23
/ \ / \
8 19 22 24
\
30
/ \
27 31
20
/ \
18 30
/ \ / \
8 19 27 31
/
23
/ \
22 24
旋转 20 不是最明智的决定。您应该将其替换为左子树的最大值或右子树的最小值。
如果您确实希望按照您的方式旋转,树的高度之间没有区别,并且两者的时间复杂度相同。
不确定如何表达这个问题。基本上采取以下BST:
25
/ \
20 30
/ \ / \
18 23 27 31
/ \ /\
8 19 22 24
如果我要删除值 25 并在其位置旋转值 20,将 23 子树附加到 27 或将 30 子树附加到 24 更有意义吗?我不是说具体到这个案例,但是从更广泛的角度来看。
澄清一下,这两种安排之间哪个更可取:
20
/ \
18 23
/ \ / \
8 19 22 24
\
30
/ \
27 31
20
/ \
18 30
/ \ / \
8 19 27 31
/
23
/ \
22 24
旋转 20 不是最明智的决定。您应该将其替换为左子树的最大值或右子树的最小值。
如果您确实希望按照您的方式旋转,树的高度之间没有区别,并且两者的时间复杂度相同。