二叉树(Binary Tree,BT)的概念和性质

二叉树是一种比较特殊的树形结构,也比较常见,其特点是每个节点最多只有二棵子树,即二叉树中不存在度大于2的节点。二叉树的子树有左子树、右子树之分,孩子同样也有左孩子、右孩子之分(次序不能颠倒)。

一般地,二叉树有如下5种形态。

二叉树(Binary Tree,BT)的概念和性质二叉树(Binary Tree,BT)的概念和性质

二叉树(Binary Tree,BT)的概念和性质二叉树(Binary Tree,BT)的概念和性质二叉树(Binary Tree,BT)的概念和性质

一般地,树的很多概念和属于也适用于二叉树,但也有一些不同:

二叉树不存在度大于2的节点但树可以;

二叉树一定是有序的;

二叉树可以为空,树不能为空等。

二叉树有一下两个比较重要的性质:

1、第i层至多有二叉树(Binary Tree,BT)的概念和性质个节点(i 二叉树(Binary Tree,BT)的概念和性质1);

2、深度为k的二叉树至多有二叉树(Binary Tree,BT)的概念和性质个节点(k二叉树(Binary Tree,BT)的概念和性质1);

当一棵二叉树深度为k且有二叉树(Binary Tree,BT)的概念和性质个节点时,我们称其为满二叉树。

二叉树(Binary Tree,BT)的概念和性质     二叉树(Binary Tree,BT)的概念和性质

                       满二叉树                                                  完全二叉树

那么什么是完全二叉树呢?深度为k,有n个节点的二叉树当仅仅当其每一个节点都与深度为k的满二叉树编号从1到n的节点都与深度为k的满二叉树中编号从1 到n的节点一一对应的,称为完全二叉树.可以这么说,满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树.

自己总结了一下完全二叉树的判断方法:

1、假如去掉最深层的叶节点,上面的二叉树为满二叉树;

2、除了根节点之外的所有节点数之和除以2后余数为零.

[感觉自己牛逼死了o( ̄▽ ̄)d(逃~]

完全二叉树有如下几点特征:

1、叶节点只可能出现在最下面两层上;

2、对任一节点,若其右子树深度为n,则其左子树的深度必为n或n+1;

3、对任何一棵二叉树,如果其叶节点数为二叉树(Binary Tree,BT)的概念和性质,度为2的节点数为二叉树(Binary Tree,BT)的概念和性质,则一点满足二叉树(Binary Tree,BT)的概念和性质

4、具有n个节点的完全二叉树的深度为二叉树(Binary Tree,BT)的概念和性质(trunc为取整函数);

5、一棵n个节点的二叉树,对于任一编号为i的节点,有

①如果i=1,则节点i为根,无父节点;如果i>1,则其父节点编号为trunc(i/2);

②如果2*i>n,则节点i为叶节点,否则左孩子编号为2*i;

③如果2*i+1>n,则节点i无右孩子,否则右孩子编号为2*i+1.