优先级队列 Q 用于实现存储字符的堆栈 S。 PUSH(C) 实现为 INSERT(Q, C, K),其中 K 是实现选择的适当整数键。 POP 实现为 DELETEMIN(Q)。对于一系列操作,选择的键在
(A)非递增顺序
(B)非减序
(C)严格递增顺序
(D)严格降序答案: (D)
说明:我们正在使用优先队列实现堆栈。请注意,堆栈实现始终是后进先出 (LIFO) 顺序。
正如给定的“POP 实现为 DELETEMIN(Q)”,这意味着堆栈始终返回最小元素。
因此,我们需要使用 INSERT(Q, C, K) 实现 PUSH(C),其中 K 是从严格递减顺序中选择的键(只有这个顺序才能确保当我们 POP 一个元素时堆栈将返回最小元素)。这将满足堆栈的后进先出 (LIFO)属性。
那就是答案,选项(D)是正确的。
选项(A)非递增顺序不能成立,因为两个相同(相同)的数字不能具有相同的优先级,因为每个数字的优先级应该是可区分的。
这个问题的测验