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

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

  • 相关阅读:
    树形数据深度排序处理示例(递归法).sql
    12种JavaScript MVC框架之比较
    逐级汇总示例(用户定义函数法).sql
    名次查询的处理示例.sql
    实现删除指定结点及所有子节点的处理触发器.sql
    memcpy和memmove的区别
    据说是月薪2W的笔试题
    C++重点知识
    Java初学者需掌握的30个概念
    (转)微软面试题
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10975646.html
Copyright © 2011-2022 走看看