zoukankan      html  css  js  c++  java
  • 完全二叉树

     

     

    n是偶数

    n是奇数

    i是叶子结点(i)无孩子

    i>n/2

    i>n/2

    i有两个孩子

    i<n/2

    i<=n/2

    i有1个孩子(且是左孩子)

    i=n/2

    i有左孩子

    i<=n/2

    i<=n/2

    i有右孩子

    i<n/2

    i<=n/2

    i有左兄弟

     一定有

    一定有 

    i有右兄弟

    i+1 <= n 

    i+1 <= n  (一定有)

    结点总数是n,最后一个有孩子的结点编号是:n/2,非叶子结点一定是n/2,叶子结点的个数是n – n/2.

    深度为h的二叉树,除h层,1 to h-1 各层结点数目都达到最大,h层的结点都连续集中在最左边。这样的二叉树叫完全二叉树。

    任意一个结点的左子树高度是L,它的右子树一定是L或L-1.

    1 to h-2层的所有结点度都是2,h层的所有结点度都为0,h-1层的结点度可能为0,1,2。

    叶子结点只可能出现在h和h-1层,只可能有1个或没有度为1的结点,若有,该结点的左孩子是二叉树最后一个结点。

    二叉树要么没有孩子,个数是n-n/2,要么有两个孩子,个数是n/2或n/2-1,要么只有一个左孩子,且这样的结点仅有一个,如果一个结点有右孩子,必有左孩子。

    n是偶数,有度为1的结点,n是奇数无度为1的结点。

    i是奇数,必是右孩子,左兄弟是i-1,

    i是偶数,必是左孩子,若n是奇数,必有右兄弟,是i+1;若n是偶数且i!=n,必有右兄弟,是i+1。

    完全二叉树的两种形态

     

    具有n个结点的完全二叉树的深度为k = [log2 n] +1 (自己推一遍)

    深度为h的完全二叉树最多有  个结点(h>=1), 最少有2^(h-1) – 1 + 1个结点;

  • 相关阅读:
    文件操作相关utils
    读取excel工具utils
    下载EXCEL文件Utils
    日期操作utils
    常用的utils
    坐标系转换Utils
    C# vs2019 CS0006 编译器错误CS1704
    C# 控制台形式 owin 添加WebApi 和Swagger
    Windows 下 Redis服务自动停止 处理
    Dotfuscator 混淆C# .Net代码 netcore
  • 原文地址:https://www.cnblogs.com/joyeehe/p/7865578.html
Copyright © 2011-2022 走看看