基本概念
结点的层次(Level)从根开始定义,根为第一层,根的孩子为第二层;
二叉树的高度:树中结点的最大层次称为树的深度(Depth)或高度 ;
二叉树
在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree);
1.二叉树的基本形态:
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
(1)空二叉树——(a);
(2)只有一个根结点的二叉树——(b);
(3)只有右子树——(c);
(4)只有左子树——(d);
(5)完全二叉树——(e);
2.两个重要的概念:
(1)满二叉树——除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树;
满二叉树的特点:每一层上的结点数都是最大结点数;
(2)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;
完全二叉树的特点:
叶子结点只可能在最大的两层上出现,对任意结点,若其右分支下的子孙最大层次为L,则其左分支下的子孙的最大层次必为L 或 L+1;
满二叉树肯定是完全二叉树完全二叉树不一定是满二叉树;
二叉树的性质:
(1)在二叉树中,第i层的结点总数不超过2^(i-1)个;
(2)深度为h的一棵二叉树最多有2^h-1个结点(h>=1),最少h个结点;
(3)对于任意一棵二叉树,如果其叶结点数为N0,度为2的结点总数为N2,则N0=N2+1;
(4)具有n个结点的完全二叉树的深度为int(log2n)+1;