1、下列关于二叉树的说法中,正确的是(C)
A. 度为2的有序树就是二叉树。
B. 含有n个结点的二叉树的高度为⌊log2(n)⌋+1。
C. 在完全二叉树中,若一个结点没有左孩子,则它必是叶节点。
D. 在任意一棵非空二叉排序树中,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。
解析:
A:度为2的有序树和二叉树的区别在于,当某个分支结点有一个孩子的时候,度为2的二叉树部分左右孩子,而二叉树分左右孩子,即使只有一个孩子。
D:当删除的为分支结点的时候,二叉树就会重构。
2、设二叉树有2n个结点,且m<n,则不可能存在(C)的结点
A. n个度为0 B. 2m个度为0
C. 2m个度为1 D. 2m个度为2
解析:
当二叉树有2n个结点的时候,度为0、1、2三种情况下最少最多的个数如下表:
最少 | 最多 | |
度为0 | 1 | n(完全二叉树) |
度为1 | 1(完全二叉树) | 2n-1 |
度为2 | 0 | n-1(完全二叉树) |
但是发现我们总结的这张表不能解决这个题,尴尬了,用公式直接来推导
2n = n1 + 2n2 + 1 -> n1 = 2(n-n1)-1(奇数)
所以可以得出一个结论:在总结点个数为偶数的二叉树中,度为1的结点个数只能是奇数。
3、设一棵非空完全二叉树T的所有叶结点均位于同一层,且每个非叶结点都有2个子结点。若T有k个叶结点,则T的结点总数是多少?
解析:
一棵非空完全二叉树T的所有叶结点均位于同一层,且每个非叶结点都有2个子结点就是满二叉树。
则有 k = 2^(h-1)
T的结点总数n=2^(h-1)-1+k = 2k-1