Python中的队列数据结构和实现的实例教程

96 阅读3分钟

队列 是计算机科学中的一种数据结构,其概念与我们在现实生活场景中看到的队列非常相似。例如,我们在售票窗口、商店等地看到排队的人。

在一个队列中,先进入的项目先存在,这意味着它是一个先进先出(FIFO)的数据结构。元素的插入发生在一端(后端),元素的删除发生在另一端**(前端**)。

向队列中插入数据的过程被称为enqueue,而从队列中删除元素的过程被称为dequeue

我们用一个叫做head 的指针表示队列的前端,用另一个叫做tail 的指针表示队列的后端。

为了理解队列数据结构的工作,请看下面的图。这里是一个队列的图形表示。

这里,队列由灰白色的线条表示。黄色、绿色和蓝色的圆圈是我们将插入队列的项目。

最初,我们有一个空队列。让我们一个一个地把项目插入队列中。

enqueue - 1

向队列中插入第一个项目

我们已经通过尾部向队列中插入了一个项目。现在,tail 的值被增加了1。head 的值保持不变。

现在,让我们以同样的方式插入另外两个项目。

enqueue-2

在队列中插入第二个项目

enqueue - 3

在队列中插入第三个项目

正如你所看到的,我们首先将黄色项目插入队列,其次是绿色项目,然后是蓝色项目。

现在,让我们看看如何从队列中删除项目。因为它是一个FIFO(先进先出)的数据结构,先插入的项目将被首先删除。

删除队列中的第一个项目

你可以看到,当第一个项目被删除时,head的值被增加了1,现在,前端的项目是绿色的圆圈。让我们把另外两个项目也删除吧。

从队列中删除第二个项目

从队列中删除第三个项目

当所有三个项目都被从队列中删除后,头和尾的值变成了 "3"。当head的值等于tail的值时,队列被认为是空的。

使用Python实现队列

让我们用Python编程语言来实现队列数据结构。Python提供了很多方法来实现这个数据结构。现在我们将通过使用Python中的队列模块来实现它。

我们可以使用**put()方法将元素插入队列中。我们也有get()**方法来按先进先出的顺序从队列中删除项目。

下面是实现队列数据结构的Python代码。

from queue import Queue

myQueue = Queue()
print(myQueue.queue)

#inserting items into the queue
myQueue.put("Yellow")
myQueue.put("Green")
myQueue.put("Blue")
print(myQueue.queue)

#deleting items from the queue
myQueue.get()
print(myQueue.queue)

myQueue.get()
print(myQueue.queue)

myQueue.get()
print(myQueue.queue)

输出。

Queue Python output

你可以查看这个在线工具,以直观地了解队列数据结构的概念。

如果这篇文章对你有帮助,请查看我关于Python中堆栈链表的文章。