c/c++语言开发共享树-二叉树的基本概念

二叉树的特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒 卡特兰数 具有n个结点的不同形态的二叉树数目,即所谓的n阶卡特兰数。(也是含有n个结点的栈的出队顺序的总情况) 二叉树的性质(约定空二叉树的高度为-1) 高度为h>=0的二叉树至少有h+1 …


二叉树的特点

  • 每个结点至多有二棵子树(即不存在度大于2的结点)
  • 二叉树的子树有左、右之分,且其次序不能任意颠倒

卡特兰数

具有n个结点的不同形态的二叉树数目,即所谓的n阶卡特兰数。(也是含有n个结点的栈的出队顺序的总情况)

树-二叉树的基本概念

二叉树的性质(约定空二叉树的高度为-1)

  • 高度为h>=0的二叉树至少有h+1个结点。
  • 高度为h>=0的二叉树至多有2h+1-1个结点
  • 含有n>=1个结点的二叉树的高度至多为n-1
  • 含有n>=1个结点的二叉树的高度至少为[log2n](向下取整)
  • 对于任何一棵二叉树,如果其叶节点的数目为n0,度为2的结点数目为n2,则n0=n2+1

证明:设n1为二叉树中度为1的结点数目,故结点总数为n=n0+n1+n2.

   在二叉树中,除根结点外,每个结点都有一条分支进入,设b为分支总数,则n=b+1.

   又因为分支有度为1和度为2的结点射出,b=n1+2n2

   于是n=n1+2n2+1=n0+n1+n2,得到n0=n2+1

满二叉树

树-二叉树的基本概念

  •  定义:一棵高度为h且有2h+1-1个结点的二叉树称为满二叉树

完全二叉树

树-二叉树的基本概念

 

  • 定义:若一棵二叉树最多只有最下面的2层上结点的度数可以小于2,并且最下面一层上的节点都集中在该层的最左边,则这种二叉树称为近似满二叉树
  • 性质:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1<=i<=n),有

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

      (2)  如果2i>n,则结点i无左孩子;如果2i<=n,则其左孩子是2i

      (3)  如果2i+1>n,则结点i无右孩子;如果2i+1<=n,则其右孩子是2i+1

  • 例题:一棵完全二叉树有1001个结点,其中叶节点的个数是(501

    解:最后一个分支结点的序号为[1001/2]=500,故叶子节点的个数为501

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/601612.html

(0)
上一篇 2021年5月10日
下一篇 2021年5月10日

精彩推荐