二叉树(Binary Tree)是 n ( n ≥ 0 ) n(n\geq 0) n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成,如下图所示。

二叉树的特点有:
每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点,没有一棵子树或者由一棵子树都是可以的。
左子树和右子树是有顺序的,次序不能颠倒。
即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。如图所示,树1和树2是同一棵树,但他们确实不同的二叉树。

二叉树具有五种基本形态:
斜树
所有的结点都只有左子树的二叉树叫左斜树。所有结点都只有右子树的二叉树叫右斜树。这两者统称为斜树。斜树有很明显的特点,就是每一层都只有一个结点,结点的个数与二叉树的深度相同。


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

单是每个结点都存在左右子树,不能算是满二叉树,还必须要所有叶子都在同一层上,这就做到了整棵树的平衡。满二叉树的特点有:
对一棵具有 n n n个结点的二叉树按层序编号,如果编号为 i ( 1 ≤ i ≤ n ) i(1\leq i\leq n) i(1≤i≤n)的结点与同样深度的满二叉树中编号为 i i i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。

满二叉树一定是一棵完全二叉树,但完全二叉树不一定是满的。
完全二叉树的特点:
性质1:在二叉树的第 i i i层至多有 2 i − 1 2^i-1 2i−1个结点( i ≥ 1 i\geq 1 i≥1)

第一层是根结点,只有一个,所以 2 1 − 1 = 2 0 = 1 2^{1-1}=2^0=1 21−1=20=1。
第二层有两个, 2 2 − 1 = 2 1 = 2 2^{2-1}=2^1=2 22−1=21=2。
第三层有四个, 2 3 − 1 = 2 2 = 4 2^{3-1}=2^2=4 23−1=22=4。
第四层有八个, 2 4 − 1 = 2 3 = 8 2^{4-1}=2^3=8 24−1