2-3-4树转Red-Black Tree不同指南操作差异相关疑问
2-3-4树转红黑树操作差异原因
- 二者对应的应用场景不同,使用的是两套不同的转换规则
- 你参考的需要做颜色交换的资料,对应的是动态自顶向下插入场景的2-3-4转红黑树逻辑:这种场景下为了避免后续插入新节点后出现连续红节点、违反红黑树性质,会提前对连接到2-node/3-node的4-node父节点执行颜色翻转,属于插入过程中的预处理操作。
- StackOverflow示例用的是静态2-3-4树到红黑树的等价转换规则:只需要满足基础要求即可,不需要额外执行插入场景的预处理操作:
- 2-node对应1个黑色节点
- 3-node对应1个黑色节点加1个红色子节点
- 4-node对应1个黑色节点加2个红色子节点
- 整树不存在连续红节点、所有根到叶子的路径黑节点数量一致
- 你标记的部分已经完全符合静态转换的所有合法要求,自然不需要额外做颜色交换。只有动态插入过程中才需要提前做颜色翻转来规避后续可能出现的性质违反问题。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

