第6章树与二叉树C解释.ppt

* 第6章 树和二叉树( Tree Binary Tree ) 6.1 树的基本概念 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.5 赫夫曼树及其应用 * 上堂课例题讨论 问: 设一棵完全二叉树具有1000个结点,则它有 个叶子结点,有 个度为2的结点,有 个结点只有非空左子树,有 个结点只有非空右子树。 法1:先求全部叶子数。n0=489(末层)+11(k-1层)=500个; 法2:先求2度结点数。n2=255(k-2层)+244(k-1层)=499个; 这两种方法的缺点:都要先计算树的深度 k=?log2n?+1 =10; 法3:无需求树深k,便可快捷求出完全二叉树的叶子数: n0= ?n/2? // 取大于n/2的最小整数值 可由二叉树性质5轻松证明! (编号为i的结点,其孩子编号必为2i和2i+1) ① ② ④ ⑧ ⑤ ⑨ ③ ? ⑦ …… n n 已知最后一个结点编号为n,则其双亲(n/2或(n-1)/2)肯定是最后一个非叶子结点。其编号之后的全部结点都是叶子了! 故,n0=n-n/2或n-(n-1)/2= ?n/2? * 问:用二叉链表法(l_child, r_child)存储包含n个结点的二叉树,结点的指针区域中必有 个空指针。 思考:二叉链

文档评论(0)

1亿VIP精品文档

相关文档