Bootstrap

二叉树的概念讲解

本篇就大概介绍下二叉树的基本知识。

1.二叉树的定义

二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵

互不相交的分别称为根结点的左子树和右子树的二叉树组成。

2.二叉树的特点

①。每个结点最多有两棵子树。

②。左子树和右子树是有顺序的。

③。即使树中某结点只有一颗子树,也要区分它是左子树还是右子树。

3.特殊的二叉树

斜树:

每一层都只有一个结点,节点的个数与二叉树的深度相同。

所有的结点都只有左子树的二叉树叫左斜树。所有结点都只有右子树的二叉树叫右斜树。

线性表结构可以理解为树的一种极其特殊的表现形式。

满二叉树:

若二叉树中所有分支结点都存在左子树和右子树,并且所有叶子在同一层,这样的二叉树称为满二叉树。

完全二叉树:

对一棵具有n个结点的二叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点

在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。

注意:满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。

4.二叉树的性质

性质1:二叉树的第i层上至多有2^(i-1)个结点(i>=1)。

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

性质3:对任何一棵二叉树,若其终端结点数为n0,也就是叶子结点数是n0,度为2的结点数为n2,则n0=n2+1;

性质4:具有n个结点的完全二叉树深度为[log2 n]+1.([x]表示不大于x的最大整数)。

性质5:若对一棵有n个结点的完全二叉树(其深度为[log2 n]+1)的结点按层序编号(从第1层到第[log2 n]+1层,每层从左到右),对任一结点i(1<=i<=n):

若有i=1,则结点i是二叉树的根,无双亲;若i>1,则其双亲是结点[i/2];

若有2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子是结点2i。

若2i+1>n,则结点i无右孩子,否则其右孩子是结点2i+1。

;