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

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

原文地址:https://www.cnblogs.com/SeanOcean/p/10975646.html