算法树概念

满二叉树=>完全二叉树

二叉查找树=>平衡二叉查找树(AVL)=>红黑树

B-Tree(B树) => B+Tree(B+树)

 

 

满二叉树

除了叶子节点外每一个节点都有两个子节点,且所有叶子节点都在二叉树的同一高度上。

 

完全二叉树

如果二叉树中除去底层节点后为满二叉树,且底层节点依次从左到右分布,则此二叉树被称为完全二叉树。

 

满二叉树一定是完全二叉树

 

二叉查找树(Binary Search Tree - BST,又称二叉排序树、二叉搜索树)

二叉查找树根节点的值大于其左子树中任意一个节点的值,小于其右子树中任意一节点的值,且该规则适用于树中的每一个节点。

 

二叉平衡树AVL树的特点

  • 具有二叉查找树的特点(左子树任一节点小于父节点,右子树任一节点大于父节点),任何一个节点的左子树与右子树都是平衡二叉树
  • 任一节点的左右子树高度差小于1,即平衡因子为范围为[-1,1] 如上左图根节点平衡因子=1,为AVL树;右图根节点平衡因子=2,固非AVL树,只是BST。

 

平衡二叉树一定是二叉查找树

 

 

 

B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树(B树是一颗多路平衡查找树
它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图.

B+树是B-树的变体,也是一种多路搜索树, 它与 B- 树的不同之处在于:

  1. 所有关键字存储在叶子节点出现,内部节点(非叶子节点并不存储真正的 data)
  2. 为所有叶子结点增加了一个链指针

 

 

B-树每个节点都存储数据,  B+树只有叶子节点才存储数据,内节点不存储数据,即底层节点才存储数据

 

 

 

 

 

 

 

 

 

 

 

参考链接:

https://cloud.tencent.com/developer/article/1669288

https://www.jianshu.com/p/ace3cd6526c4

posted @ 2022-08-14 17:15  cogitoergosum  阅读(68)  评论(0编辑  收藏  举报