二叉树
二叉树(binary tree,简写成BT)是一种特殊的树型结构,它的度数为2的树。即二叉树的每个结点最多有两个子结点。每个结点的子结点分别称为左孩子、右孩子,它的两棵子树分别称为左子树、右子树。二叉树有5中基本形态:
1.空二叉树
2.仅有根结点的二叉树
3.左子树为空的二叉树
4.右子树为空的二叉树
5.左右子树均非空的二叉树
前面引入的树的术语也基本适用于二叉树,但二叉树与树也有很多不同,如:首先二叉树的每个结点至多只能有两个结点,二叉树可以为空,二叉树一定是有序的,通过它的左、右子树关系体现出来。
性质:
性质1:在二叉树的第i层上最多有2^(i-1)个结点(i>=1)。
性质2:深度为k的二叉树至多有2^k –1个结点(k>=1)。
性质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