二叉树(binary tree)

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实现其索引结构。

  

猜你喜欢

转载自www.cnblogs.com/xp2h/p/12520592.html