数据结构之红黑树
在此之前来看一下一个特别的二叉树
从程序的角度来看,这棵二叉树不平衡,呈现一边倒的情况;查询次数或者时间复杂度会随一边无线伸长;
有一个术语叫做顶端优势,和去除顶端优势;去除后会使树更加发散,健壮;
而红黑树就是以此而来的解决方案;
红黑树
一棵自平衡的二叉树,树上的节点都遵循以下的原则:
- 每个节点都有红色或黑色
- 树的根始终是黑色的 (黑土地孕育黑树根, )
- 没有两个相邻的红色节点(红色节点不能有红色父节点或红色子节点,并没有说不能出现连续的黑色节点)
- 从节点(包括根)到其任何后代NULL节点(叶子结点下方挂的两个空节点,并且认为他们是黑色的)的每条路径都具有相同数量的黑色节点
详细介绍
自己探索