二叉查找树(二分查找)
不合适做索引,因为当数据库中的数据变更时(删除/新增节点),可能会变为一个线性表,那么查找的效率会很低.
平衡二叉树
1 :每个节点最多只能有二个孩子节点
2 :左子树的值小于根节点的键值,右子树的键值大于根节点的键值。
3 :任意节点的左子树和右子树的高度差的绝对值不超过1
(平衡二叉树的特点)
平衡二叉树进行插入操作可能导致失去平衡
左左失去平衡(左边高,右边低) 我们需要把根节点的左孩子作为新的根节点,进行旋转.得到新的树节点。
LR(左右插入节点,导致树失去平衡) :向跟节点的左孩子的右孩子插入 导致树失去平衡
需要二次旋转:第一次 旋转4 6,把6作为跟节点
第二次旋转 6 8旋转,把6作为跟节点为
平衡二叉树虽然解决了二叉树增加或者删除节点的时候,一棵树容易拉变为一个线性表的缺点(通过旋转),但是他总归还是一个二叉树,当节点的个数很多的时候,那么树的层级就会变的很深 很深,递归查询很费时间.