计算机2级vb的一道公共基础题

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:44:14
设一个 完全 二叉树共有699个结点,那么这个二叉树有几个叶子结点?

要告诉我详细的解题步骤啊~~

350个
699=N+(N-1)

二叉树中的结点分为三种:
度为2,度为1,度为0。即这个结点有两个孩子结点,有一个孩子结点,没有孩子结点(叶结点)。
结点总数=度为2的结点+度为1的结点+度为0的结点
在任意二叉树中,度为2的结点的数目比度为0的结点(叶结点)数目少一个。
例如,只有三个结点的二叉树,其度为2的结点数目为1(根结点),度为0的结点(叶结点)有两个。
0
/ \
0 0
完全二叉数中,没有度为1的结点。所以
结点总数=度为2的结点+度为0的结点
699=N+(N-1)

一个具有N个结点的完全二叉树的叶子数
若n为偶数: n/2
若n为奇数: (n+1)/2

完全二叉树的定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。
特点:叶子结点只可能在层次最大的两层上出现;对任一结点,若其右分支下子孙的最大层次为l,则其左分支下子孙的最大层次必为l 或l+1 。
提示;深度为h的二叉树最多有2^h-1个结点(h>=1),
跟据这个特点解题简单了吧····
你先算2的几次方接近699,2的九次方=512,699-512=187,而还有一个根节点,也就是699-(512-1)=186个叶子结点,因为是完全二叉树,所以要占用第九层93个结点,而第九层一共有256个结点,所以256-93+186就是最后的叶子结点个数。

699=512+187
叶子结点数为187+(512-(187+1)\2)=187+416=603

完全二叉树中第k层满的话有2^(k-1)个节点,而k层的满二叉树共有2^k-1个节点,故如果完全二叉树有699个节点,则它有10层,前9层供2^9-1=511个节点,第9层有2^(9-1)=256个节点,第10层有699-511=188个节点,这188个节点供有94个父节点,即第9层有94个节点不是叶节点,故第9层叶节点有256-94=162个,所以叶节点总数为162+