二叉树的性质:
性质1:在二叉树第k层上的节点数最多有2k-1(k≥1);
解释:最多的时候是满二叉树,它的第1层有21-1=1个结点;第2层有22-1=2个结点;第3层23-1=4个结点;第4层有24-1=8个结点;……
性质2:深度为m的二叉树的节点数最多有2m-1;
性质3:对于任意一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个;即如果其叶子结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
性质4:具有n个结点的完全二叉树的深度为[log2n]+1;
性质5:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]+1表示取log2n的整数部分;
满二叉树
在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,这样的二叉树称为满二叉树。(上图中所示的二叉树,就是一棵满二叉树)
完全二叉树
对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤i≤n)的结点与同样深度的满二叉树中的编号为i的结点在二叉树中的位置完全相同,则这棵二叉树称为完全二叉树。
二叉树的遍历:
1. 前根序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。
ABDHECFG
2.中根序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。
HDBEAFCG
3.后根序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。
HDEBFGCA
已知一棵二叉树的前根序序列和中根序序列,构造该二叉树的过程如下:
1. 根据前根序序列的第一个元素建立根结点;
2. 在中根序序列中找到该元素,确定根结点的左右子树的中根序序列;
3. 在前根序序列中确定左右子树的前根序序列;
4. 由左子树的前根序序列和中根序序列建立左子树;
5. 由右子树的前根序序列和中根序序列建立右子树。
已知一棵二叉树的后根序序列和中根序序列,构造该二叉树的过程如下:
1. 根据后根序序列的最后一个元素建立根结点;
2. 在中根序序列中找到该元素,确定根结点的左右子树的中根序序列;
3. 在后根序序列中确定左右子树的后根序序列;
4. 由左子树的后根序序列和中根序序列建立左子树;
5. 由右子树的后根序序列和中根序序列建立右子树。
线索二叉树概念 |
一颗完全二叉树第六层有8个叶结点(根为第一层),则结点个数最多有()个。
设一课完全二叉树共有999个结点,则在该二叉树中的叶节点个数是?
根据二叉树第k层上的节点数最多有2k-1(k≥1);深度为m的二叉树的节点数最多有2m-1;
m=10共10层;
前9层是满二叉树,总的节点数是:511
则第10层的叶子节点数目是:999-511=488
第九层的非叶子节点数目是:488/2=244;
第九层的节点数目是:256
则第九层的叶子节点数目是:256-244=12
则总的叶子节点数目是:12+488=500