• 二叉树节点推导(一)


     已知节点数为767个的完全二叉树,叶子节点是多少?

    若n为总节点数

    n0为 度为0的节点数

    n1为 度为1的节点数

    n2为 度为2的节点数

    n=n0+n1+n2

    n0=n2+1

    所以 n =  2n0+n1-1  =767

    又因为完全二叉树度为1 的有0 或 1 个

    n=2n0 或者 n =2n0-1 

    767不能被2整除,所以 2n0 = 768 所以 n0为384,叶子节点384个

    二叉树结点计算问题
    设一棵满二叉树中,度为2的结点数为7,则二叉树的全部结点可能为多少?

    只有一个答案啊,因为二叉树中n0 = n2 + 1,现在度为2的结点个数是7,所以度为0的结点(也就是叶子)个数为8,并且满二叉树中没有度为1的结点,因此二叉树的全部结点个数为15

     深度为k的二叉树,最多有2^k-1个节点。(满二叉树情况,减去根节点)

    证明二叉树的第i层上至多有2的i-1次方个结点

    第1层1个,为2^(1-1)
    二叉树每个结点至多2个孩子,因此
    第二层最多2 *1 = 2^(2-1)
    第三层最多2*2= 2^(3-1)
    ....
    第i层上至多有2的i-1次方个结点

     具有 n 个结点的完全二叉树的深度        (注:[ ]表示向下取整)

    深度为k的二叉树的节点总数最多为1+2+4+..+2^(k-1)=2^k-1
    则设n个节点的二叉树深度为m,2^m-1>=n
    m>=log2(n+1)>log(2n),由于m是整数
    m>=[log2n]+1

      对任意的一颗二叉树 T ,若叶子结点数为 n0,而其度数为 2 的结点数为 n2,则 n0 = n2+1

    解答:设:节点总数是K+1 =n0+n1+n2

    度总数是 K = 2n2+n1

                  n2-n0+1=0

                得出结论: n0=n2+1

     如果有一颗有n个节点的完全二叉树的节点按层次序编号,对任一层的节点i(1<=i<=n)有

                            (1).如果i=1,则节点是二叉树的根,无双亲,如果i>1,则其双亲节点为[i/2],向下取整

                            (2).如果2i>n那么节点i没有左孩子,否则其左孩子为2i

                            (3).如果2i+1>n那么节点没有右孩子,否则右孩子为2i+1

     完全二叉树

    定义:一棵二叉树中,只有最下面两层结点的度可以小于2,且最下一层的叶结点集中在靠左的若干位置上。这样的二叉树称为完全二叉树。
    特点:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部

  • 相关阅读:
    jquery选择器[转]
    asp.net调用exe并传递参数然后关闭exe[转]
    JS操作JSON总结[转]
    Newtonsoft.Json序列化和反序列[转]
    jQuery EasyUI自定义DataGrid的Editor【转】
    【转】jquery easy UI datagrid新增一行,columns中editor下拉框之间的联动。
    jquery 表单序列化 转换json
    Jquery组合form元素为json格式,asp.net反序列化[转]
    什么是BOM头,及PHP解决办法
    PHP中去除字符串中的换行的方法
  • 原文地址:https://www.cnblogs.com/yizhizhangBlog/p/10635099.html
Copyright © 2020-2023  润新知