选择题
- 深度为5的二叉树至多有( C )个结点(根结点为第一层)。
A.16
B.32
C.31
D.10
解析:
完全二叉树至多有(2^n)-1个 - N(大于2)个节点的二叉树中至少有一个度为2的节点。(B)
A.正确
B.错误
解析:
二叉树中的度是指结点拥有孩子的个数。
二叉树的特点:
1、每个节点最多有两颗子树,所以二叉树中不存在度大于2的节点。注意不是只有两颗子树,而是最多有。没有子树和有一颗子树都是可以的。
2、左子数和右子树是有顺序的,次序是不能任意颠倒的。
3、即使树中某节点只有一颗子树,也要区分它是左子树还是右子树。
对于N(大于2)个结点的二叉树不一定有度为2的树。 - 完全二叉树一定存在度为1的结点。(B)
A.T
B.F - 下列排序算法中,在待排序数据已有序时,花费时间反而最多的是©排序。
A.冒泡
B.希尔
C.快速
D.堆 - 向一个有 127 个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素(B)
A.8
B.63.5
C.63
D.7
解析:
插入为n/2
删除为(n-1)/2
查找为(n+1)/2 - 个数约为 50k 的数列需要从小到大排序, 数列特征是基本逆序 (多数数字从大到小,个别乱序) ,以下哪种排序算法在事先不了解数列特征的情况下性能大概率最优(不考虑空间限制)E_.
A.冒泡排序
B.改进冒泡排序
C.选择排序
D.快速排序
E.堆排序
F.插入排序
解析:
个数约为50K,基本可以秒杀一般的冒泡
,改进冒泡
,选择
,插入
等基本的排序。加上数列的特征是基本逆序,而快速排序的worst case就是基本逆序或者基本有序的情况。综上所述,堆排序应该是大概率最优的 - 现有一棵无重复关键字的平衡二叉树(AVL树),对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是 。(D)
A.根结点的度一定为2
B.树中最小元素一定是叶结点
C.最后插入的元素一定是叶结点
D.树中最大元素一定是无左子树
解析:
只有两个结点的平衡二叉树的根结点的度为1,A错误。中序遍历后可以得到一个降序序列,树中最大元素一定无左子树(可能有右子树),因此不一定是叶结点,B错误。最后插入的结点可能会导致平衡调整,而不一定是叶结点,C错误。 - 将森林F转换为对应的二叉树T,F中叶结点的个数等于 (C)
A.T中叶结点的个数
B.T中度为1的结点个数
C.T中左孩子指针为空的结点个数
D.T中右孩子指针为空的结点个数
解析:
在二叉树中,节点的左指针指向其孩子,节点的右指针指向其兄弟。所以在一颗二叉树中,如果某个节点的左指针为NULL,就说明这个节点在原来的森林中没有孩子,是叶子几点,如果某个节点的右指针为NULL,就说明这个节点在原来的森林中没有兄弟。
所以森林中的叶子节点=二叉树中左指针为NULL的个数 - 若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是(D)。
A.24
B.30
C.53
D.69
解析:
(4+5)*3+(6+7+8)*2=27+42=69 - 下面哪些不是链表的特征(ACD)
A.数据在内存中一定是连续的
B.插入或删除时,无需移动其它元素
C.可以随机访问表内的元素
D.需要事先估计存储空间
编程题
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。