您的位置:首页 > 其它

六、树和二叉树--(1)什么是二叉树

2016-05-02 22:03 309 查看
摘自计蒜客:http://www.jisuanke.com/course/35/1389



如上图所示,二叉树的每个结点最多只有两个孩子结点,也就是说每个结点最多有两个子树。
二叉树有
5 种基本形态:
空二叉树,树为空,没有结点;
只有根结点的二叉树;
只有左子树的二叉树;
只有右子树的二叉树;
左右子树都有的二叉树。

接下来我们来看看二叉树的性质:

二叉树的第 i 层最多有 2i - 1 个结点。由定义可知,二叉树的每个结点最多有两个孩子结点,那么第 i 层最多的结点数等于第 i - 1 层最多结点数的 2 倍。而第 1 层最多只有 1 个结点,所以我们可以知道第 i 层最多有 2i
- 1 个结点。

深度为 k 的二叉树最多有 2k - 1 个结点。由上一个性质,我们可以知道二叉树每层最多的结点个数,从第 1 层到第 k 层把最多结点数累加起来,我们就可以得到深度为 k 的二叉树最多有 2k -
1 个结点。

任意一棵二叉树上,其叶子结点个数 n0 比度为 2 的结点数 n2 多
1。度为 2 的结点指的是即有左孩子又有右孩子的结点。我们记树上结点总个数为 n,度为 1 的结点个数为 n1,则有 n = n0 +
n1 + n2。另外我们可以发现一棵二叉树一共有 n - 1 条边,度为
2 的结点可以延伸出 2 条边,度为 1 的结点可以延伸出 1 条边,叶子结点没有边延伸出来,所以又有 n - 1 = n1 + 2 * n2。结合以上两个式子,我们可以得到
n0 = n2 + 1。

下面我们来了解下两个特殊的二叉树吧。

第一个是满二叉树,如果一棵树深度为
k 而且有 2k -
1 个结点,那么我们称该二叉树为满二叉树,也就是说在此深度上,不能再添加结点了;

第二个是完全二叉树,如果一棵树深度为
k,从第 1 层到第 k - 1 层该树是满二叉树,第 k 层的结点都集中在左边,那么我们称该二叉树为完全二叉树。完全二叉树因其结构的特殊性具有很高的效率,它经常被用在算法的优化里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: