Python 队列实现:原理、代码与操作详解
本文详解Python中队列(Queue)的基本定义与使用方法。队列遵循先进先出(FIFO)原则,广泛应用于消息通信及多进程/多线程协同场景。文章通过Node和Queue类的代码示例,演示了队列的初始化、入队(enqueue)与出队(dequeue)操作,并提供了完整的运行结果分析,帮助开发者掌握Python数据结构的核心应用。
Python队列基础概述
本文详细介绍Python中队列的基本定义及其具体使用方法,供读者参考学习。
队列的核心特征在于其遵循“先进先出”(FIFO)的数据处理原则。
该数据结构常见于消息通信系统,以及多进程或多线程之间的协同工作场景。
队列设计与实现方法
在构建队列实例时,需设计两个关键属性:分别指向队列头部(head)和尾部(tail)的节点。
队列类需实现两个核心实例方法:用于添加元素的入队操作(enqueue)和用于移除元素的出队操作(dequeue)。

Python队列完整代码示例
# -*- coding:utf-8 -*-
#! python3
class Node(object): #节点,包括两个属性,一个是节点的值,一个是节点的下一个指向
def __init__(self,value):
self.value = value #节点的值
self.next = None #节点的下一个指向
class Queue(object): #队列这个类
def __init__(self): #初始化这个队列
self.first = None #队列的首尾指向的节点都是None,初始化
self.last = None
def enter(self,n):
packNode = Node(n) #创建Node新节点实例,值为n
if self.first == None: #如果首指向为空
self.first = packNode #将首指向的节点赋为传进来的节点
self.last = self.first #并且将尾指向的节点赋为
else:
self.last.next = packNode #如果队列不为空,就将新的节点赋值到目前last的下一个位置
self.last = packNode #然后移动last指向,将last指向到刚才新增的节点
def quit(self):
if self.first == None:
return None
else:
tmp = self.first.value #如果队列中存在值,则把队列中第一个的值赋值给tmp
self.first = self.first.next #将first的指向下一个,变为first指向
return tmp
if __name__ == '__main__':
print("------------队列开始--------")
q = Queue()
# n1 = Node(1)
# n2 = Node(2)
# n3 = Node(3)
q.enter(1)
q.enter(2)
q.enter(3)
print(q.quit())
print(q.quit())
print(q.quit())
# print(q)
运行结果分析
以下是代码执行后的输出结果:
------------队列开始-------- 1 2 3
如需了解更多Python相关知识,可参考本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。
希望上述内容能对您的Python程序设计工作提供有益帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













