1、概述
如果树中的每个节点的子节点的个数不超过2,就是一个二叉树;
2、特点
增删改查的性能都很高;
3、二叉查找树(二叉排序树、二叉搜索树)(Binary Search Tree)
左子树所有节点的值均小于等于他的根节点的值;
右子树所有节点的值均大于或者等于它根节点的值;
每一个节点最多有两个子树;
有可能出现“瘸子现象”就变成链表了;
4、平衡二叉树(Balanced Binary Tree/AVLTree)
基于二叉查找树,但是让树不要太高,尽量让树元素平衡分布。这样综合性能就高了;
规则:它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树;
5、红黑树(Red Black Tree)
就是平衡的二叉查找树;
特征:
每一个节点或是红色,或是黑色;
根节点必须是黑色;
每个叶节点(Nil)是黑色的;
如果某一个节点是红色,那么它的子节点必须是黑色;
对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;
在进行元素插入的时候,和之前一样;每一次插入完毕以后,使用黑色规则进行校验,如果不满足红黑规则,就需要通过变色,左旋和右旋来调整树,使其满足红黑规则;
6、平衡多路查找树(B-Tree)
7、B+Tree
B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。