二叉树:每个节点有最多两个子节点
满二叉树:除最后一层外,每个节点都有两个子节点
完全二叉树: 除最后一层外,其他层节点数目都为该层最大值, 最后一层的节点集中在左侧
平衡二叉树(AVL二叉树):每个节点左右两颗子树的高度相差不超过1
二叉查找树:任意节点的左节点小于根节点,右节点大于根节点
查找次数等于二叉查找树的高度
二叉查找树会出现瘸腿的情况,影响查找性能
红黑树:自平衡的二叉查找树
1.节点为黑色或者红色
2.根节点为黑色,所有叶节点都为黑色的null
3.每个红色节点的子节点一定是黑色
4.黑色节点的子节点可以是黑色
5.根节点到任意叶节点的路径上有相同数目的黑色节点
红黑树规则被破坏
给红色节点插入子节点会破坏规则
红黑树的调整方法
1.变色:调整整棵树的节点颜色
2.旋转:分为左旋转和右旋转
左旋:根节点成为右孩子的左节点
右旋:根节点成为左孩子的右节点