据说无处不在" 在堆栈中,每个插入元素的优先级单调递增" 但是在堆栈中,每个新元素的优先级都高于前一个元素。因此,当实现为优先级队列时,如果2个后续元素具有相同的优先级(根据单调的定义),则删除将不符合Stack的LIFO策略,而是遵循FIFO策略。
优先级是否应该严格增加?
提前致谢!!
答案 0 :(得分:1)
是的,我认为“单调”而不是“严格”是不正确的。
单调增加可以为堆栈工作如果你假设在两个具有相同优先级的元素之间,之前插入的元素将始终在另一个元素之后。但是这个假设不是我在这个主题上看过的文献中所做的,而是需要交换来模拟一个队列(之前插入的队列需要之前另一个)。