1.二叉树binary tree是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的,分别称为根结点的做子树和右子树的二叉树组成
2.二叉树的特点:
每个结点最多有两棵子树,所以不存在度大于2的结点。没有子树或者只有一棵子树都是可以的
左子树和右子树是有顺序的,次序不能随便颠倒
即使树中某结点只有一棵子树,还是要区分是左子树还是右子树
3.二叉树有5种基本形态
空二叉树
只有一个根结点
根结点只有左子树
根结点只有右子树
根结点既有左子树也有右子树
4.特殊二叉树
斜树
所有的结点只有左子树称为左斜树,所有的结点只有右子树称为右斜树
满二叉树
在一棵二叉树中,如果所有的分支结点都存在于左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树
完全二叉树
对于一棵具有n个结点的二叉树按层序编号,如果编号为i的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树
叶子结点只能出现在最下两层
最下层的叶子一定集中在左部连续的位置
倒数第二层,若有叶子结点,一定在右部连续位置
如果结点的度为1,则该结点只有做孩子,即不存在只有右子树的情况
同样结点数的二叉树,完全二叉树的深度最小
5.二叉树的性质
在二叉树的第i层上至多有pow(2,i-1)个结点
深度为k的二叉树至多有pow(2,k)-1个结点
对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1
具有n个结点的完全二叉树的深度为log2n +1
如果对一棵有n个结点的完全二叉树(深度为log2n +1)的结点按层序编号,对于任一结点i有:
1) i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是i/2
2)如果2i>n,则结点为叶子结点;否则其左孩子是结点2i
3) 如果2i+1>n,则结点i无右孩子;否则其右孩子是结点2i+1