以下问题已在 GATE CS 2006 考试中提出。
1. 考虑多项式 p(x) = a0 + a1x + a2x^2 +a3x^3,其中 ai != 0,对于所有 i。在输入 x 上计算 p 所需的最小乘法次数是:
(一) 3
(乙) 4
(三) 6
(四) 9
答案 (A)
可以使用以下顺序来最小化乘法以评估给定的表达式。
p(x) = a0 + x(a1 + x(a2 + a3x))
2. 在未加权图上实现 Dijkstra 最短路径算法,使其在线性时间内运行,要使用的数据结构为:
(一) 队列
(B) 堆栈
(便宜的
(D) B-树
答案(A)
未加权图中的最短路径意味着为了到达图中的目的地而必须遍历的最少边数。这与求解所有权重恰好为 1 的加权版本相同。如果我们使用队列(FIFO)而不是优先级队列(最小堆),我们会在线性时间 O(|V| + |) 内得到最短路径。 E|)。基本上我们对图进行 BFS 遍历以获得最短路径。
3. 三元最大堆类似于二元最大堆,但节点有 3 个子节点,而不是 2 个子节点。一个三元堆可以用数组表示如下:根存储在第一个位置,a[0],下一层的节点,从左到右,从a[1]到a[3] ]。树的第二层从左到右的节点从 [4] 位置开始存储。通过将 x 放在位置 a[n] 并将其向上推到树以满足堆属性,可以将项 x 插入包含 n 个项的 3 元堆中。
以下哪一项是表示 3 进制最大堆的数组中的有效元素序列?
(一) 1, 3, 5, 6, 8, 9
(B) 9, 6, 3, 1, 8, 5
(C) 9, 3, 6, 8, 5, 1
(D) 9, 5, 6, 8, 3, 1
答案 (D)
9
/ | \
/ | \
5 6 8
/ |
/ |
3 1
4. 假设将元素 7、2、10 和 4 按此顺序插入到上述问题中找到的有效 3-ary 最大堆中,以下哪一项是表示结果堆的数组中的项目序列?
(一) 10, 7, 9, 8, 3, 1, 5, 2, 6, 4
(B) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
(C) 10, 9, 4, 5, 7, 6, 8, 2, 1, 3
(D) 10, 8, 6, 9, 7, 2, 3, 4, 1, 5
答案(A)
After insertion of 7
9
/ | \
/ | \
7 6 8
/ | \
/ | \
3 1 5
插入 2 后
9
/ | \
/ | \
7 6 8
/ | \ /
/ | \ /
3 1 5 2
插入后 10
10
/ | \
/ | \
7 9 8
/ | \ / |
/ | \ / |
3 1 5 2 6
插入后 4
10
/ | \
/ | \
7 9 8
/ | \ / | \
/ | \ / | \
3 1 5 2 6 4