二叉树节点计算:叶子结点、完全二叉树、高度与结点数
(1) 根据树的性质,叶子结点数目等于度为 1 的结点数目加 1,即共有 3+1=4 个叶子结点。
(2) 完全二叉树的叶子结点一定都在最后一层,所以叶子结点数目等于最后一层的结点数目。假设最后一层有 k 个结点,则根据完全二叉树的性质,前面的所有层共有 2^k-1 个结点,加上最后一层的 k 个结点,总共有 2^k-1+k=700。解得 k=9,因此叶子结点数目为 2^9=512。
(3) 对于高度为 h 的二叉树,最多有 2^h-1 个结点,最少有 h 个结点(即只有根节点的情况)。
(4) 对于高度为 h 的完全二叉树,最多有 2^(h+1)-1 个结点,最少有 2^h 个结点(即只有最后一层是满的情况)。
(5) 设完全二叉树的深度为 h,则前面 h-1 层共有 2^(h-1)-1 个结点,第 h 层共有 2^5 个结点。因为第 6 层共有 8 个叶子结点,所以第 6 层上面的结点数目为 8*2=16。所以该完全二叉树的结点数目为 2^(h-1)-1+16+2^5=2^(h-1)+15。又因为该完全二叉树共有 2^h-1 个结点,所以有 2^h-1>=2^(h-1)+15,解得 h>=5。因此该完全二叉树的深度至少为 5,结点数目至少为 2^4+15=31。对于最多的情况,第 6 层上面的结点数目应该尽量多,因此第 6 层应该是满的,此时叶子结点数目为 2^6=64。根据完全二叉树的性质,前五层共有 2^5-1=31 个结点,因此在第 6 层上面还应该有 700-31-64=605 个结点。这些结点可以分配在第 6 层上面的任意节点,只要不出现空缺即可。因此最多的情况下,该完全二叉树的结点数目为 2^6-1+605=702。
原文地址: https://www.cveoy.top/t/topic/mOqx 著作权归作者所有。请勿转载和采集!