Java 红黑树需要两次遍历吗

Java 红黑树需要两次遍历吗,java,data-structures,red-black-tree,Java,Data Structures,Red Black Tree,正如我们所知,要得到一个精确的二叉树,我们至少需要两次遍历(按顺序和预顺序/按顺序和后顺序)才能得到原始树。但是,如果原始树是红黑树,是否必须进行两次遍历(按顺序和预顺序/按顺序和后顺序)才能获得原始树?谢谢。通过提供一个反例,很容易说明顺序遍历是不够的: 5B 3R 10B 1B 4B 3B 1B 5R 4B 10B 它们都是有效的红黑树,其顺序遍历顺序为(1,3,4,5,10)。因此,仅通过对红黑树节点的顺序遍历来重建红黑

正如我们所知,要得到一个精确的二叉树,我们至少需要两次遍历(按顺序和预顺序/按顺序和后顺序)才能得到原始树。但是,如果原始树是红黑树,是否必须进行两次遍历(按顺序和预顺序/按顺序和后顺序)才能获得原始树?谢谢。

通过提供一个反例,很容易说明顺序遍历是不够的:

     5B
  3R     10B
1B  4B

      3B
    1B   5R
        4B  10B

它们都是有效的红黑树,其顺序遍历顺序为(1,3,4,5,10)。因此,仅通过对红黑树节点的顺序遍历来重建红黑树是不可能的。

通过提供反例,很容易证明顺序遍历是不够的:

     5B
  3R     10B
1B  4B

      3B
    1B   5R
        4B  10B

它们都是有效的红黑树,其顺序遍历顺序为(1,3,4,5,10)。因此,仅通过按顺序遍历节点来重建红黑树是不可能的。

因为,“无论是前序还是后序与顺序配对,都足以唯一地描述树,而前序与后序在树结构中留下一些歧义。”,这通过反例表明,单靠顺序遍历是不够的,同时也表明前顺序和后顺序一起是不够的。因为“一棵红黑树就是一棵树”,答案是肯定的:至少需要两次遍历,其中一次是有序的。

对于“预序或后序与顺序配对足以唯一地描述树,而预序与后序在树结构中留下了一些歧义。”,这通过反例表明,单靠顺序遍历是不够的,同时也表明前顺序和后顺序一起是不够的。因为“红黑树是一棵树”,答案是肯定的:至少需要两次遍历,其中一次是有序的。

否,一次预序或后序遍历就足够了


由于红黑树是一个二叉搜索树,搜索树属性意味着顺序遍历只是所有元素的排序列表,因此是多余的。

否,预顺序或后顺序遍历就足够了


因为红黑树是一个二叉搜索树,所以search tree属性意味着顺序遍历只是所有元素的排序列表,因此是多余的。

我认为只有顺序是多余的sufficient@tejas谢谢如果可能的话,你能用一些链接或文章来证明你的评论是正确的吗?我认为只有顺序是正确的sufficient@tejas谢谢如果可能的话,你能用一些链接或文章来证明你的评论是正确的吗?