📜  门|门 CS 1997 |第 32 题

📅  最后修改于: 2021-09-26 03:44:30             🧑  作者: Mango

优先级队列 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)非递增顺序不能成立,因为两个相同(相同)的数字不能具有相同的优先级,因为每个数字的优先级应该是可区分的。

这个问题的测验