优先级队列被实现为最大堆。最初,它包含5个元素。堆的层顺序遍历为:10、8、5、3、2。两个新元素1和7以此顺序插入堆中。插入元素后,堆的层级遍历为:
(A) 10、8、7、3、2、1、5
(B) 10、8、7、2、3、1、5
(C) 10、8、7、1、2、3、5
(D) 10、8、7、5、3、2、1答案: (A)
解释:
Initially heap has 10, 8, 5, 3, 2
10
/ \
8 5
/ \
3 2
After insertion of 1
10
/ \
8 5
/ \ /
3 2 1
No need to heapify as 5 is greater than 1.
After insertion of 7
10
/ \
8 5
/ \ / \
3 2 1 7
Heapify 5 as 7 is greater than 5
10
/ \
8 7
/ \ / \
3 2 1 5
No need to heapify any further as 10 is
greater than 7
这个问题的测验