概念
二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树
特殊二叉树
1.满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。. 也就是说,如果一个二叉树的层数为K,且结点总数是 (2^k) -1 ,则它就是满二叉树。如下图:
2.完全二叉树:满足以下要求:. 所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数;. 第 k 层可以不是满的,但是第 k 层的所有节点必须集中在最左边。注意:满二叉树肯定是完全二叉树,而完全二叉树不一定是满二叉树。
二叉树的性质
性质1:二叉树第i层上的结点数目最多为
2
{i-1} (i≥1)。
性质2:深度为k的二叉树至多有 2{k}-1个结点(k≥1)。
性质3:包含n个结点的二叉树的高度至少为 log2 (n+1)。
证明:根据"性质2"可知,高度为h的二叉树最多有2{h}–1个结点。反之,对于包含n个节点的二叉树的高度至少为log2(n+1)。
性质4:在任意一棵二叉树中,若叶子结点的个数为 n0,度为2的结点数为 n2,则 n0=n2+1。
性质5: