二叉搜索树BST
任意节点左子树所有节点比本身小,右子树所有节点比本身大。
好处:插入或读取只需要与每一层一个节点进行比较
缺点:当数据连续自增自减时,会变成线性存储结构,读写复杂度变为O(N)
自平衡二叉树AVL
是二叉搜索树一种
左子树与右子树深度差小于等于1.
O(logN)
红黑树
叶子节点,根节点:黑节点
红节点的子节点必须是黑节点。整个树一半以上是黑节点
新插入的节点是红节点
从任意结点出发到叶子节点的任意路径,经过的黑节点数目一样
左右树深度差一倍:插入时左旋右旋销毁更少
为什么hashmap采用红黑树
红黑树相比于avl树,对于平衡条件更宽松,导致操作变得更少。O(logN)