首先,树是一种容器,
通过最为简单的比较分类逻辑,人类最简单原始的辨识能力,也就是贴标签,分类,构建的容器
可以通过简单的逻辑递归的查找
二叉树,将线性时间复杂度,通过二分的逻辑降低到了logn
这一切的前提是,树的形状比较扁平,通过给予每个节点额外的属性来确保这一点,出现了红黑树。
红黑树定义的5个规则:
1)每个结点要么是红的,要么是黑的。
2)根结点是黑的。
3)每个叶结点,即空结点(NIL)是黑的。
4)如果一个结点是红的,那么它的俩个儿子都是黑的。
5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。
第四条 所得出的结果是,从根节点到叶节点的所有路径上面,所有的节点颜色不可能出现相邻的连续的红色,例如 黑红红黑黑红黑黑是不能的,但是它可以是全黑色。
第五条 所得出结果,最坏的结果 一条路径上面的节点全是黑色,另外一条路径的节点 黑红相间,所以最长路径的长度是最短路径的两倍,一定程度上面保证了,整个树的形状是比较扁平的,高度至多为2log(n+1)。
旋转,提供了对树的高度的改变的方法(在不改变搜索树的属性情况下),具体怎么样用这个方法需要配合红黑属性,插入节点有3种情况,删除节点有4种情况。