Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 红黑树叶版_Algorithm_Binary Tree_Binary Search Tree_Red Black Tree - Fatal编程技术网

Algorithm 红黑树叶版

Algorithm 红黑树叶版,algorithm,binary-tree,binary-search-tree,red-black-tree,Algorithm,Binary Tree,Binary Search Tree,Red Black Tree,给我一棵红黑相间的树。将给定的RBT转换为RBT,其中原始树的键存储在叶中,内部节点存储额外的键,以便所有内部节点满足关于其键的二叉树搜索属性 有人能给我一个提示,如何将任何RBT转换为RBT的叶子版本 感谢任何帮助你应该清楚你所说的“所有信息都存储在内部节点”中的意思,因为看起来你在你的问题中间改变了“内部”的定义。但是,无论如何,解决方案可能依赖于这样一个事实:当所有内部节点都有2个子节点时,在每一步上,叶节点和内部节点之间交替进行顺序遍历。@MattTimmermans:“所有信息”指的是

给我一棵红黑相间的树。将给定的RBT转换为RBT,其中原始树的键存储在叶中,内部节点存储额外的键,以便所有内部节点满足关于其键的二叉树搜索属性

有人能给我一个提示,如何将任何RBT转换为RBT的叶子版本


感谢任何帮助

你应该清楚你所说的“所有信息都存储在内部节点”中的意思,因为看起来你在你的问题中间改变了“内部”的定义。但是,无论如何,解决方案可能依赖于这样一个事实:当所有内部节点都有2个子节点时,在每一步上,叶节点和内部节点之间交替进行顺序遍历。@MattTimmermans:“所有信息”指的是原始RBT的所有键。我将编辑上面的文字,希望这样更容易理解。这不是一个完整的答案,但请注意,一般来说,叶的数量与内部节点的数量相同。我认为您应该能够通过在子代前置节点的右侧添加每个节点的叶版本来进行转换(值较低的最高值的子代,始终是右叶),或者如果不存在(原始节点是左叶),则将该叶版本添加为左子代。