树与二叉树例题
例1
高度为K(K>=2)的完全二叉树至少有()个叶子结点。
解:
根据二叉树性质 二叉树第i(i>=1)层上至多有2^(i-1)个结点
第K-1层有 2^(K-1-1)=2^(K-2) 个结点
求二叉树至少有多少个叶子结点, 第K层至少有一个结点。故高度为K的二叉树至少有2^(K-2)个叶子结点.
例2
在二叉树中,指针p非空,它所指结点为叶子结点的条件是 (p->lchild=NULL) && (p->rchild=NULL)
例3
已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有()个叶结点
公式: 树中的结点数=总分叉数+1
这里的分叉数就是所有结点的度之和
树中的结点数p = 2+3+4+x (x为叶子结点数)
树中的结点数p = (2*1+3*2+4*3+x*0 )+1 = 2+6+12+1 = 21
x+9 = 21
x = 12
例4
已知完全二叉树的第7层有20个结点,则整个完全二叉树的叶子结点数是()
根据二叉树性质 第i层有2^(i-1)个结点 2^(7-1) = 64 个结点, 故第7层为最底层
第6层 2^(6-1) = 32个结点 由此可以得出第6层32+第7层20-第7层对应的第6层的结点数(20/2)= 20+32-(20/2)=42个
画图更明显
例5
有K个叶子结点的哈夫曼树,其结点的总数为()
根据哈夫曼树的构成, 初始K个叶子结点需要合并k-1次 一共产品k-1个结点. 如 初始4个结点需要3次合并 每次产生一个新的结点
新产生的k-1个结点+初始K个结点=K+K+1=2K+1