如果节点X
没有合适的孩子,我很难理解它是什么的继承者。
根据我的理解,如果某个节点X
没有合适的孩子,那么就不会有继任者。
但我的教科书上写着以下内容:
如果节点
X
的右侧子树为空,X
有后继Y
...
X
如果没有正确的孩子,怎么会有继任者?
答案 0 :(得分:1)
后继者只是有序序列中的下一个元素;它不一定是儿童元素。
例如,下面5
的后续版本为7
:
7
/ \
5 8
答案 1 :(得分:1)
节点X
的后继者是树中与<{1}}相关的最小的元素S
。也就是说,对于集X
中的所有节点,G = { Si | Si > X }
是S
和G
的元素,S <= Si
。
在BST中,对于任何节点i=1..n
,X
左子树中的所有元素都小于X
,而右子树中的所有元素都大于X
。
现在将X
视为树中的任意节点,并让P
成为其父节点。在以下两种情况下,如果X
包含或不包含小于X
的元素的左子树,则不无关紧要。
X
有一个正确的子树
根据定义,X
的后继者位于右子树中。右子树的最小元素是最左边的元素,它是X
的后继元素。如果右子树只包含一个节点,那么它就是X
的后继节点。
X
没有正确的子树
X
是其父<{1}}的左子
然后父P
是继任者。
P
是其父X
的正确子女
然后P
的第一个祖先,我们称之为X
,这样A
落在X
的左子树中就是A
的继任者。
X
案例1的例子
案例2的例子