• 求三叉树高度


    有12345个结点的满3叉数的高度为_____写出计算过程

                                    1                      层:1 节点数:1
                         /          |              \              
                       2           3               4              层:2 节点数:3
                     / | \       / | \            / | \
                    5 6 7     8 9 10       11 12 13          层:3 节点数:9

    满三叉树每层节点数目
    假设k-1层有n个节点 那么第k层就应该有3n个节点。也就是说这是一个首项是1,公比是3的等比数列。第n层节点数an可以表示为
              an=a1*q^(n-1) = 1*3(n-1) = 3^(n-1)   

    满三叉树总的节点数目
    总的节点数目就是对各层节点数目求和,每层的节点数目计算公式已经有了。然后就是公比数列求和就行了。一个高位n的满三叉树总节点个数
              sn = a1*(1-q^n)/(1-q) = 1*(1-3^n)/(1-3) = (3^n-1)/2
             
    其实有了这个公式这题就可以做了,可以估计一下。求得一个n和n+1让12345在sn和sn'之间就行了。

    下面给出一个较为严格的推导。
                                 ....
                               /.......\      
                                    (3^(k-1)-1)/2   层:k-1
                          /                 \    
                 (3^(k-1)+1)/2   (3^k-1)/2    层:k
    设一个有n层的满三叉树的节点总数为n,那么
                   (3^(k-1)+1)/2  <= n <= (3^k-1)/2
                  
                   3^(k-1)+1 <= 2n
                   3^k-1 >= 2n

                   k <= log3(2n - 1) - 1
                   k >= log3(2n + 1)
                  
    对k向下取整就行了。

  • 相关阅读:
    uboot的配置文件在哪里
    uboot的flash sectore的大小由哪个宏指定
    openwrt中的append-ubi定义在哪里
    vi在行首插入注释符号#
    openwrt设置uboot环境变量在flash上的存储地址
    git重命名分支名
    ifconfig设置ip时出现提示 ifconfig: SIOCSIFFLAGS: Address not available
    jquery checkbox选中、改变状态、change和click事件
    jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
    checkbox选择根据后台List数据进行回显
  • 原文地址:https://www.cnblogs.com/23lalala/p/2703595.html
Copyright © 2020-2023  润新知