二叉树的定义及重要特性
其他
2020-01-29 15:13:02
阅读次数: 0
二叉树
- 二叉树:每个结点至多只有两颗子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。
- 满二叉树:即每一层上的结点数都是最大结点数。 若其深度为k,则有2^k-1个结点。
- 完全二叉树:若把二叉树的结点从根结点开始,由上到下,从左到右依次编号。完全二叉树即为满二叉树从其最大的编号结点依次往前出栈任意次后的结果。
- 下图为它们的示例图:
- 由二叉树的定义和其特殊形态可得到以下重要特性:
(1).二叉树的第i层最多由2^(i-1)个结点(i>=1)
(2).深度为k的二叉树最多有2^k-1个结点(k>=1)
即特性1的前k层相加得到2^k-1.
(3).对任何一棵二叉树T,若其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
此处可以证明,如下:
①.设度为1的结点数为n1,二叉树的总结点数为n,则:n=n0+n1+n2;
②.又因为除了根结点外,有多少个结点就有多少个分支,设分支总数为B,则:n=B+1;
③.又因为分支总数即为度为1的结点个数+2倍的度为2的结点个数,即:B=n1+2n2;
④.所以上式代入得到:n0=n2+1;
(4).具有n个结点的完全二叉树的深度为 [log₂ n]+1(即对数取整+1)
(5).如果对一棵有n个结点的完全二叉树,从其根结点开始,由上到下,从左到右依次编号,则对任一结点i∈[1,n],有:
①.如果i=1,则结点是完全二叉树的根,无双亲。如果i>1,则其双亲PARENT(i)是结点[i/2] (此处[ ]为取整符号)。
②.如果2i>n,则结点i无左孩子;否则其左孩子为结点2i。
③.如果2i+1>n,则结点i无右孩子;否则其左孩子为结点2i+1。
发布了77 篇原创文章 ·
获赞 19 ·
访问量 1万+
转载自blog.csdn.net/qq_42932834/article/details/93233232