zoukankan      html  css  js  c++  java
  • BT

    BT

    二叉树基本概念

    二叉树(binary tree,简写成BT)是一种特殊的树型结构,它的度数为2的树。即二叉树的每个结点最多有两个子结点。每个结点的子结点分别称为左孩子、右孩子,它的两棵子树分别称为左子树、右子树。二叉树有5中基本形态:

       

       

     前面引入的树的术语也基本适用于二叉树,但二叉树与树也有很多不同,如:首先二叉树的每个结点至多只能有两个结点,二叉树可以为空,二叉树一定是有序的,通过它的左、右子树关系体现出来。

    二叉树的性质

    【性质1】在二叉树的第i层上最多有2i-1个结点(i>=1)。

    【性质2】深度为k的二叉树至多有2k 1个结点(k>=1)。

    【特别】一棵深度为k且有2k1个结点的二叉树称为满二叉树。如下图A为深度为4满二叉树,这种树的特点是每层上的结点数都是最大结点数。

    可以对满二叉树的结点进行连续编号,约定编号从根结点起,自上而下,从左到右,由此引出完全二叉树的定义,深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1n的结点一一对应时,称为完全二叉树

    【性质3】对任意一棵二叉树,如果其叶结点数为n0,度为2的结点数为n2,则一定满足:n0=n2+1

    【性质4】具有n个结点的完全二叉树的深度为floor(log2n)+1

    【性质5】对于一棵n个结点的完全二叉树,对任一个结点(编号为i),有:

    ①如果i=1,则结点i为根,无父结点;如果i>1,则其父结点编号为i/2。如果2*i>n,则结点i无左孩子(当然也无右孩子,为什么?即结点i为叶结点);否则左孩子编号为2*i

    ②如果2*i+1>n,则结点i无右孩子;否则右孩子编号为2*i+1

    感谢各位与信奥一本通的鼎力相助!

  • 相关阅读:
    java 数组及数组得内存管理总结
    js 日期格式化
    url获取参数值,支持中文、英文
    C# log4net 的日志代码配置
    js 处理浏览器显示地址
    mui <a>标签跳转失效的处理
    js 实时输入事件
    asp.mvc 页面获取当前请求的控制器和方法
    js 获取元素值
    DllImport System.DllNotFoundException 找不到指定的模块。 (Exception from HRESULT: 0x8007007E)
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10975646.html
Copyright © 2011-2022 走看看