PTA——中国大学MOOC-陈越、何钦铭-数据结构-2019秋期中考试——答案
选择题 1–10
1-1 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 (2分)
- T
- F
答案:T
作者: DS课程组 单位: 浙江大学
1-2 所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (2分)
- T
- F
答案:F
作者: DS课程组 单位: 浙江大学
1-3 通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。 (3分)
- T
- F
答案:F
作者: DS课程组 单位: 浙江大学
1-4 在一棵由包含4、5、6等等一系列整数结点构成的二叉搜索树中,如果结点4和6在树的同一层,那么可以断定结点5一定是结点4和6的父亲结点。 (3分)
- T
- F
答案:F
作者: DS课程组 单位: 浙江大学
1-5 用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。 (3分)
- T
- F
答案:T
作者: DS课程组 单位: 浙江大学
1-6 若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。 (3分)
- T
- F
答案:F
作者: DS课程组 单位: 浙江大学
1-7 如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量。 (3分)
- T
- F
答案:T
作者: DS课程组 单位: 浙江大学
1-8 将一棵完全二叉树存于数组中(根结点的下标为1)。则下标为23和24的两个结点是兄弟。 (3分)
- T
- F
答案:F
作者: 何钦铭 单位: 浙江大学
1-9 若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树。(3分)
- T
- F
答案:T
作者: 徐镜春 单位: 浙江大学
1-10 在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (3分)
- T
- F
答案:F
作者: DS课程组 单位: 浙江大学
填空题 1–12
2-1 下列代码
for(i=0; i<n; i++)
for(j=i; j>0; j/=2)
printf(“%d\n”, j);
的时间复杂度是: (4分)
- A. O(N×i)
- B. O(N)
- C. O(N2)
- D. O(NlogN)
答案:D
作者: DS课程组 单位: 浙江大学
2-2 三叉树中,度为1的结点有5个,度为2的结点3个,度为3的结点2个,问该树含有几个叶结点? (4分)
- A. 8
- B. 10
- C.12
- D.13
答案:A
作者: DS课程组 单位: 浙江大学
2-3 下列函数中,哪两个函数具有相同的增长速度:(4分)
- A. 2N和NN
- B. N和2/N
- C. N2logN和NlogN2
- D. NlogN2和NlogN
答案:D
作者: DS课程组 单位: 浙江大学
2-4 表达式a*(b+c)-d的后缀表达式是: (4分)
A. a b c + * d -
B. a b c d * + -
C. a b c * + d -
D. - + * a b c d
答案:A
作者: DS课程组 单位: 浙江大学
2-5 在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:−n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少? (4分)
- A. 1和-6
- B. 4和-5
- C. 8和-5
- D. 8和-6
答案:B
作者: DS课程组 单位: 浙江大学
2-6 在将数据序列( 6, 1, 5, 9, 8, 4, 7 )建成大根堆时,正确的序列变化过程是:(4分)
- 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 → 9,6,5,1,8,4,7 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
- C. 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
- 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
答案:A
作者: 考研真题 单位: 浙江大学
2-7 已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是: (4分)
- A. 39
- B. 52
- C. 111
- D. 119
答案:C
作者: DS课程组 单位: 浙江大学
2-8 设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为: (4分)
- A. 40
- B. 36
- C. 25
- D. 12
答案:C
作者: DS课程组 单位: 浙江大学
2-9 若某图的深度优先搜索序列是{V2, V0, V4, V3, V1},则下列哪个图不可能对应该序列? (4分)
-
A.
-
B.
-
C.
-
D.
答案:D
作者: 陈越 单位: 浙江大学
2-10 设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:(4分)
- A. h=t; t->next=h;
- B. t->next=h->next; h=t;
- C. h=t; t->next=h->next;
- D. t->next=h; h=t;
答案:D
作者: DS课程组 单位: 浙江大学
2-11 循环顺序队列中是否可以插入下一个元素()。 (4分)
- A. 与曾经进行过多少次插入操作有关
- B. 只与队尾指针的值有关,与队头指针的值无关
- C. 只与数组大小有关,与队首指针和队尾指针的值无关
- D. 与队头指针和队尾指针的值有关
答案:D
作者: 严冰 单位: 浙江大学城市学院
2-12 先序遍历图示二叉树的结果为 (4分)
- A. A,B,C,D,H,E,I,F,G
- B. A,B,D,H,I,E,C,F,G
- C. H,D,I,B,E,A,F,C,G
- D. H,I,D,B,E,F,G,A,C
答案:B
作者: DS课程组 单位: 浙江大学
程序填空题 1–2
5-1 下列代码的功能是从一个大顶堆H的某个指定位置p开始执行下滤。
void PercolateDown( int p, PriorityQueue H ) {
int child;
ElementType Tmp = H->Elements[p];
for ( ; p * 2 <= H->Size; p=child ) {
child = p * 2;
if ( child!=H->Size &&_____(H->Elements[child]<H->Elements[child+1])_____)
child++;
if ( H->Elements[child] > Tmp )
_____H->Elements[p] = H->Elements[child]_____(6分);
else break;
}
H->Elements[p] = Tmp;
}
作者: 陈越
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
5-2 下列代码的功能是返回带头结点的单链表L的逆转链表。
List Reverse( List L ) {
Position Old_head, New_head, Temp;
New_head = NULL;
Old_head = L->Next;
while ( Old_head ) {
Temp = Old_head->Next;
___Old_head->Next = New_head;_____(6分);
New_head = Old_head;
Old_head = Temp;
}
_____L->Next = New_head____(6分);
return L;
}
作者: DS课程组
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB