设一棵完全二叉树共有700个结点,则在该二叉树中有多少个叶子结点?
回答不能只给答案,需要详细的解析。
设一棵完全二叉树共有700个结点,则在该二叉树中有多少个叶子结点?
回答不能只给答案,需要详细的解析。
计算结果:350个叶子结点
解法:
对完全二叉树而言,度为1的结点只能为0或1.设X,Y,Z分别为叶子结点、单支结点数、双支结点数的个数。则:
当Y=0时,700=X+0+Z=2Z+1,Z结果不为整数,故错。
当Y=1时,700=X+1+Z=2Z+2,Z=349.则:X=349+1=350.即叶子结点数为:350.
(二叉树中:叶子结点数=双支结点数+1.)
可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,合并成一个公式:n0=(n+1)/2 ,就可根据完全二叉树的结点总数计算出叶子结点数。
700/2=350