1、二叉树的基本概念算法
类型 | 定义 | 图示 |
满二叉树
Full Binary Tree
|
除最后一层无任何子节点外,每一层上的全部节点都有两个子节点,最后一层都是叶子节点。知足下列性质:
1)一颗树深度为h,最大层数为k,深度与最大层数相同,k=h;
2)叶子节点数(最后一层)为
3)第 i 层的节点数是:
4)总节点数是:
|
![]() |
彻底二叉树
Complete Binary Tree
|
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层全部的结点都连续集中在最左边,这就是彻底二叉树。知足下列性质:
1)只容许最后一层有空缺结点且空缺在右边,即叶子节点只能在层次最大的两层上出现;
2)对任一节点,若是其右子树的深度为j,则其左子树的深度必为j或j+1。 即度为1的点只有1个或0个;
3)除最后一层,第 i 层的节点数是:
5)满二叉树必定是彻底二叉树,彻底二叉树不必定是满二叉树。
|
![]() |
平衡二叉树
Balanced Binary Tree
|
又被称为AVL树,它是一颗空树或左右两个子树的高度差的绝对值不超过 1,而且左右两个子树都是一棵平衡二叉树。 | ![]() |
二叉搜索树
Binary Search Tree
|
又称二叉查找树、二叉排序树(Binary Sort Tree)。它是一颗空树或是知足下列性质的二叉树:
1)若左子树不空,则左子树上全部节点的值均小于或等于它的根节点的值;
2)若右子树不空,则右子树上全部节点的值均大于或等于它的根节点的值;
3)左、右子树也分别为二叉排序树。
|
![]() |
红黑树
Red Black Tree
|
是每一个节点都带有颜色属性(颜色为红色或黑色)的自平衡二叉查找树,知足下列性质:
1)节点是红色或黑色;
2)根节点是黑色;
3)全部叶子节点都是黑色;
4)每一个红色节点必须有两个黑色的子节点。(从每一个叶子到根的全部路径上不能有两个连续的红色节点。)
5)从任一节点到其每一个叶子的全部简单路径都包含相同数目的黑色节点。
|
![]() |