Python - 队列的数据结构



我们在日常生活中等待服务时熟悉排队。队列(Queue)数据结构 alo 的含义与数据元素在队列中排列的位置相同。queue 的唯一性在于添加和删除项目的方式。这些项目允许在一端,但从另一端删除。所以它是一个先进先出的方法。

可以使用 python list 实现队列,我们可以使用 insert() pop() 方法来添加和删除元素。它们没有插入,因为数据元素总是添加到队列的末尾。

添加元素

在下面的示例中,我们创建了一个 queue 类,并在其中实现 First-in-First-Out 方法。我们使用内置的 insert 方法来添加数据元素。


class Queue:
	 	def __init__(self):
	 	 	 self.queue = list()

	 	def addtoq(self,dataval):
# Insert method to add element
	 	if dataval not in self.queue:
	 	 	 self.queue.insert(0,dataval)
	 	 	 return True
	 	return False

	 	def size(self):
	 	 	 return len(self.queue)

TheQueue = Queue()
TheQueue.addtoq("Mon")
TheQueue.addtoq("Tue")
TheQueue.addtoq("Wed")
print(TheQueue.size())

输出

执行上述代码时,它会产生以下结果 -

3

删除元素

在下面的示例中,我们创建一个 queue 类,在其中插入数据,然后使用内置的 pop 方法删除数据。


class Queue:
	 	def __init__(self):
	 	 	 self.queue = list()

	 	def addtoq(self,dataval):
# Insert method to add element
	 	if dataval not in self.queue:
	 	 	 self.queue.insert(0,dataval)
	 	 	 return True
	 	return False
# Pop method to remove element
	 	def removefromq(self):
	 	 	 if len(self.queue)>0:
	 	 	 	 	return self.queue.pop()
	 	 	 return ("No elements in Queue!")

TheQueue = Queue()
TheQueue.addtoq("Mon")
TheQueue.addtoq("Tue")
TheQueue.addtoq("Wed")
print(TheQueue.removefromq())
print(TheQueue.removefromq())

输出

执行上述代码时,它会产生以下结果 -

Mon
Tue