1.在将数据序列( 6, 1, 5, 9, 8, 4, 7 )建成大根堆时,正确的序列变化过程是:
A.6,1,7,9,8,4,5 → 6,9,7,1,8,4,5 → 9,6, 7,1,8,4,5 → 9,8,7,1,6,4,5
B.6,9,5,1,8,4,7 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4, 5 → 9,8,7,1,6,4,5
C.6,9,5,1,8,4,7 → 9,6,5,1,8,4,7 → 9,6,7,1,8,4, 5 → 9,8,7,1,6,4,5
D.6,1,7,9,8,4,5 → 7,1,6,9,8,4,5 → 7,9,6,1,8,4, 5 → 9,7,6,1,8,4,5 → 9,8,6,1,7,4,5
2.在一个有2333个元素的最小堆中,下列哪个下标不可能是最大元的位置?
A.1116
B.1167
C.2047
D.2232
3.在下述结论中,正确的是:
① 只有2个结点的树的度为1;
② 二叉树的度为2;
③ 二叉树的左右子树可任意交换;
④ 在最大堆(大顶堆)中,从根到任意其它结点的路径上的键值一定是按非递增有序排列的。
A.①④
B.②
C.①②③
D.②③④
4.以下各组序列不属于堆的是()。
A.(100,85,98,77,80,60,82,40,20,10,66)
B.(10,20,40,60,66,77,80,82,85,98,100)
C.(100,85,40,77,80,60,66,98,82,10,20)
D.(100,98,85,82,80,77,66,60,40,20,10)
5.堆是满足一定条件的()。
A.完全二叉树
B.队列
C.栈
D.线性表
6.下列四个序列中,属于堆的是()。
A.(75,65,30,15,25,45,20,10)
B.(75,45,65,30,15,25,20,10)
C.(75,45,65,10,25,30,20,15)
D.(75,65,45,10,30,25,20,15)
7.设最小堆(小根堆)的层序遍历结果为{5, 18, 15, 28, 22, 42, 40}。用线性时间复杂度的算法将该堆调整为最大堆(大根堆),则该树的中序遍历结果为:
A.18, 28, 22, 15, 40, 5, 42
B.18, 28, 22, 42, 15, 40, 5
C.5, 22, 18, 42, 15, 40, 28
D.22, 5, 18, 42, 40, 15, 28
8.对最小堆(小顶堆){1,3,2,6,7,5,4,15,14,12,9,10,11,13,8} 进行三次删除最小元的操作后,结果序列为:
A.4,5,6,7,8,9,10,11,12,13,14,15
B.4,6,5,13,7,10,8,15,14,12,9,11
C.4,6,5,12,7,10,8,15,14,9,13,11
D.4,5,6,12,7,10,8,15,14,13,9,11
9.用线性时间复杂度的算法将给定序列{ 28, 12, 5, 8, 19, 20, 15, 22 }调整为最大堆(大根堆),然后插入30。则结果序列为:
A.{ 5, 8, 28, 12, 19, 20, 15, 22, 30 }
B.{ 30, 28, 20, 22, 12, 5, 15, 8, 19 }
C.{ 30, 28, 22, 20, 19, 15, 12, 8, 5 }
D.{ 30, 28, 20, 22, 19, 5, 15, 8, 12 }
无
//标准程序,修改好答案后提交
#include <bits/stdc++.h>
using namespace std;
string s = "0";
int main(){
s += "ABCDABCDA";//字符串更改为你的答案,共9个,其他的都不要更改
int x;
cin >> x;
cout << s[x];
return 0;
}