调整的方法如下:
调整前后满足二叉排序树的特点,并且中序遍历的顺序不能变
方法一:
(1)若被删除的节点没有左子树,则直接用右孩子代替它(右孩子可以为空)
(2)若被删除的节点有左子树,则在其左子树中找到中序遍历的最后一个节点
r,把被删除节点的右子树作为r节点的右子树,并用被删除节点的左孩子代替
被删除节点。
方法二:
(1)若被删除的节点没有右子树,则直接用左孩子代替它(左孩子可以为空)
(2)若被删除的节点有右子树,则在其右子树中找到中序遍历的第一个节点
r,把被删除节点的左子树作为r节点的左子树,并用被删除节点的右孩子代替
被删除节点。
调整前后满足二叉排序树的特点,并且中序遍历的顺序不能变
方法一:
(1)若被删除的节点没有左子树,则直接用右孩子代替它(右孩子可以为空)
(2)若被删除的节点有左子树,则在其左子树中找到中序遍历的最后一个节点
r,把被删除节点的右子树作为r节点的右子树,并用被删除节点的左孩子代替
被删除节点。
方法二:
(1)若被删除的节点没有右子树,则直接用左孩子代替它(左孩子可以为空)
(2)若被删除的节点有右子树,则在其右子树中找到中序遍历的第一个节点
r,把被删除节点的左子树作为r节点的左子树,并用被删除节点的右孩子代替
被删除节点。
本文详细阐述了二叉排序树中删除节点的两种高效算法,确保调整后的树依然保持二叉排序树特性,同时保持中序遍历顺序不变。包括删除节点无左右子树情况和有左子树或右子树情况的具体操作步骤。
664

被折叠的 条评论
为什么被折叠?



