全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总
题目1:(虽然这是树的思考题)最优编码不一定通过Huffman算法得到。给定4个字符及其出现频率:
A:1; B:1; C:2; D:2
下面哪一套不是用Huffman算法得到的正确的编码?
-
A.: A:000; B:001; C:01; D:1
-
B. A:10; B:11; C:00; D:01
-
C. A:00; B:10; C:01; D:11
-
D. A:111; B:001; C:10; D:1
选C
题目2: “前缀码+没有度为1的结点”不能保证得到最优编码。我能举出例子说明吗?
-
A. 能
-
B. 不能
-
C. 不管你能不能,反正我能
-
D. ……又卖萌了
哈哈,果断选D。
题目3:如果有|V|个顶点和|E|条边的图用邻接表存储,则算法的时间复杂度是多少?
- void Unweighted ( Vertex S )
- { Enqueue(S, Q);
- while(!IsEmpty(Q)){
- V = Dequeue(Q);
- for ( V 的每个邻接点 W )
- if ( dist[W] == -1 ) {
- dist[W] = dist[V]+1;
- path[W] = V;
- Enqueue(W, Q);
- }
- }
- }
注意在算法执行中,每个顶点最多只会进队列一次,而且每条边也是会遍历一次,所以时间复杂度是O(V+E),V是顶点数,E是边数