Skip to main content
 首页 » 编程设计

python之我将如何反转 python 中任何给定队列的内容

2025年05月04日12xxx_UU

我是 python 的新手,想知道如何处理反转队列。现在,如果我理解正确的话,队列只是一种可以用任何语言实现的数据结构,例如使用 Python 中的列表。

所以基本上如果一个问题要求反转堆栈或队列,但由于两者都可以使用列表来表示,这不是说要反转列表的内容吗?我对这个主题做了一些研究,发现通过使用一个类和方法,您可以实现入队、出队和 isEmpty 操作。

class Queue: 
 
    def __init__(self): 
        self.items = [] 
 
    def isEmpty(self): 
        return self.items == [] 
 
    def enqueue(self, item): 
        self.items.insert(0,item) 
 
    def dequeue(self): 
        return self.items.pop() 

因此,如果我被要求反转队列堆栈的内容,这是否意味着我必须仅使用上述方法来反转列表的内容? (通过只删除列表前面的项目,并在列表后面添加项目)

请您参考如下方法:

您可以使用辅助堆栈来反转队列中的元素。

基本上,您将堆叠队列中的每个元素,直到它变空。然后弹出堆栈中的每个元素并将其排入队列,直到堆栈为空。

# suppose your have a Queue my_queue 
aux_stack = Stack() 
while not my_queue.isEmpty(): 
    aux_stack.push(my_queue.dequeue()) 
 
while not aux_stack.isEmpty(): 
    my_queue.enqueue(aux_stack.pop())