Binary tree 红黑树澄清问题

Binary tree 红黑树澄清问题,binary-tree,red-black-tree,Binary Tree,Red Black Tree,我一直在读关于红黑树的书,有两个问题一直困扰着我。我仍然在了解它们,如果这些对一个更有经验的程序员来说是显而易见的,那么很抱歉 如果在红黑树中插入节点,平衡树,然后删除节点,是否会生成同一棵树?总是这样吗?在我看来是的,但我不完全确定 如果删除没有子节点的红色节点,请平衡树,然后重新插入相同的节点,是否始终会导致相同的树?总是,有时,还是永远 再一次,如果有琐碎的问题,我很抱歉,我还在学习,还没有找到这些问题的好答案。提前谢谢 您的第一个问题的答案是否它不会导致相同的树,下面我展示了一个示例:

我一直在读关于红黑树的书,有两个问题一直困扰着我。我仍然在了解它们,如果这些对一个更有经验的程序员来说是显而易见的,那么很抱歉

  • 如果在红黑树中插入节点,平衡树,然后删除节点,是否会生成同一棵树?总是这样吗?在我看来是的,但我不完全确定

  • 如果删除没有子节点的红色节点,请平衡树,然后重新插入相同的节点,是否始终会导致相同的树?总是,有时,还是永远


  • 再一次,如果有琐碎的问题,我很抱歉,我还在学习,还没有找到这些问题的好答案。提前谢谢

    您的第一个问题的答案是
    否它不会导致相同的树
    ,下面我展示了一个示例:

             5(B)                        5(B)                   5(B)
         /          \        Del(3)    /      \     Ins(3)    /      \
       3(B)          9(B)    =====>   4(B)    9(B)  =====>  4(B)     9(B)
          \                                                 /
           4(R)                                          3(R)
    
    正如你所看到的,这棵树已经变了

    第二个问题的答案是
    是,它总是导致相同的树
    ,因为当您删除没有子节点的
    红色节点时,不会发生重新平衡,因为没有违反任何规则,由于
    红色节点
    的父节点始终是
    黑色节点
    ,当我们再次添加红色节点时,它将位于相同的位置


    下面是一个可视化工具的链接,可以帮助您消除更多疑问:

    您的第一个问题的答案是
    否它不会导致相同的树,下面我展示了一个示例:

             5(B)                        5(B)                   5(B)
         /          \        Del(3)    /      \     Ins(3)    /      \
       3(B)          9(B)    =====>   4(B)    9(B)  =====>  4(B)     9(B)
          \                                                 /
           4(R)                                          3(R)
    
    正如你所看到的,这棵树已经变了

    第二个问题的答案是
    是,它总是导致相同的树
    ,因为当您删除没有子节点的
    红色节点时,不会发生重新平衡,因为没有违反任何规则,由于
    红色节点
    的父节点始终是
    黑色节点
    ,当我们再次添加红色节点时,它将位于相同的位置


    这里是一个可视化工具的链接,可以帮助您消除更多疑问:

    太棒了,谢谢。那个网站对我的理解很有帮助!太棒了,谢谢你。那个网站对我的理解很有帮助!