调课通知下周(第5周)星期一1~2节的数据结构课调到:下周(第5周)星期四5~6节教室:L24122
二叉树的性质二叉树的性质(3+2)(3+2)性质1:在二叉树的第i层上至多有22i-1i-1个结点(i>0)
性质2:深度为k的二叉树至多有22kk-1-1个结点(k>0)
性质3:对于任何一棵二叉树,若2度的结点数有n2个,则叶子数n0必定为n2+1(即n0=n2+1)上堂课内容回顾1
树的基本知识树的基本知识树的定义、若干术语、逻辑结构、存储结构、基本运算对于两种特殊形式的二叉树(满二叉树和完全二叉树),还特别具备以下2个性质:性质4:具有n个结点的完全二叉树的深度必为log2n+1性质5:对完全二叉树,若从上至下、从左至右编号,则编号为i的结点,其左孩子编号必为2i,其右孩子编号为2i+1;其双亲的编号必为i/2(i=1时为根,除外)
ABCDEGFHIKJMLNO152346789101112131415ACBEDFGHIJ12435768910上堂课例题讨论问:设一棵完全二叉树具有1000个结点,则它有500个叶子结点,有499个度为2的结点,有1个结点只有非空左子树,有0个结点只有非空右子树
法1:先求全部叶子数
n0=489(末层)+11(k-1层)=500个;法2:先求2度结点数
n2=255(k-2层)+244(k-1层)=499个;这两种方法的缺点:都要先计算树的深度k=log2n+1=10;法3:无需求树深k,便可快捷求出完全二叉树的叶子数:完全二叉树的叶子数:nn00==n/2n/2////取大于n/2的最小整数值可由二叉树性质5轻松证明
(编号为i的结点,其孩子编号必为2i和2i+1)①②④⑧⑤⑨③
⑦……nn已知最后一个结点编号为n,则其双亲n/2肯定是最后一个非叶子结点
其编号之后的全部结点都是叶子了
故,n0=n