只讲不会的
普通二叉树就要讲排列顺序了!!!
预备:满二叉树:1.前提是它必须是二叉树 2.每个结点(除了终端结点外)都是2个子女。
要点1:关于普通的树的结点的计算,请牢记:1.每一层最多有(2的k-1次方)个结点。【看到最多请以满二叉树举例】 2.二叉树最多有(2的k次方)-1个结点
要点2:若n为总结点个数,n【+下标】(下标表示子结点个数),则有n0=n2+1;
{证明
现在设B表示二叉树里面边的个数,当从上往下看的时候,除了根结点之外的每个结点都对应一条边,所以B=n-1,从下往上看的时候,n2下面跟2条边,n1下面跟一条边,所以B=2*n2+n1;与n=n0+n1+n2联立后(总结点n数等于所有子结点数(n0+n1+n2)之和),即得n0=n2+1;
}
现在是关于特殊二叉树的相关计算:(满二叉树与完全二叉树)
满二叉树:每个父母都有小孩(狗头)
课本定义:深度为k,且只含有(2的k次方)-1个结点的树==>二叉树的结点数固定(在边已知的情况下)
完全二叉树:
课本定义:深度为k,有n个结点的二叉树,当且仅当每一个结点都与深度为k的满二叉树的编号一一对应时,称为完全二叉树。
理解:像满二叉树一样排列,但是不放满。
由此可知完全二叉树的特点:1.叶子在最后两层出现 2.右子树的层数为k时,左子树为k或k+1
{在深度思考一下,满二叉树结点数(2的k次方-1)一定是奇数,完全二叉树与满二叉树的排列相同,只是n1(度为1的结点)结点数只能为0或1【因为结点可以不放满】,所以当完全二叉树为奇数时n1=0,代表它与满二叉树相似;同理,完全二叉树为偶数时,n1=1,相当于最后有了一个结点}
完全二叉树的性质(3+2个):
第4个:具有n个结点的完全二叉树的深度k为 | log以2为底n的对数 |+1,证明:n的数量在满二叉树的最后一层到前一层之间(即:2的k-1次方-1<= n <2的k次方-1),等效于2的k-1 到 2的k次方,再同时取对(log)就是 log以2为底n的对数 ,在k-1到k之间,而k是整数,所以log 2 n==k-1
》k=| log 2 n |+1
第五个:(建议画一个有12个结点的完全二叉树)
假设 结点i
它父母的结点数==floor(i/2); [floor表示向下(小)取整]
当 2*i>n时(叶子结点),该结点无子结点,此外,左结点为2*i(eg:i==4)。
当2*i+1>n时,结点无右孩子,否则右孩子为2*i+1(eg:i==6).