红黑树初探(算法导论)
Posted 作死的跑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红黑树初探(算法导论)相关的知识,希望对你有一定的参考价值。
红黑树学习
1.红黑树特征
红黑树需要满足5个性质:
节点要么是红色,要么是黑色。
根节点是黑色。
叶子节点是黑色。这里的叶子节点指的是空节点(NIL节点)。
如果一个节点是红色,那么它的两个子节点都不能是红色。
从根节点到叶子节点的每一条路径,都包含相等数目的黑色节点。
2.红黑树旋转
为了保证红黑树的性质可以通过左旋、右旋来进行改变其结构
左旋
将其和右节点进行旋转操作
将右节点的做节点作为其右节点、右节点作为其父节点、其作为右节点的左节点
右旋
将其和左节点进行旋转操作
将做节点的右节点作为其左节点、做节点作为其父节点、其作为左节点的右节点
3.插入操作
插入操作可能会破坏红黑树的平衡、插入后需要进行修复处理
插入节点和插入一般二叉树一致、只将其节点颜色标记为红色。
将插入节点颜色记为红色对于破坏红黑树的性质比较少。
性质1不会被破坏
性质2如果当前书为空时会被破坏
性质3叶子节点是黑色、这里的叶子节点是红黑树的nil节点。不会被破坏
性质4可能会被破坏如果父节点为红色,插入节点也为红色
性质5不会被破坏
4.删除操作
删除操作也可能会破坏平衡、删除后需要进行修复处理
删除节点和一把二叉树一致、搜索对应节点进行删除
后续理解继续学习
以上是关于红黑树初探(算法导论)的主要内容,如果未能解决你的问题,请参考以下文章