[Python]队列基础

简介: [Python]队列基础

关于队列

基本的队列是一种先进先出的数据结构。

一般的队列基本操作如下:

  • create:创建空队列
  • add:将新数据加入队列的末尾。返回新队列。
  • delete:删除队列头部的数据,返回新队列。
  • fromt:返回队列头部的值
  • empty:若队列为空,则返回一个空队列。

使用列表简单实现一个队列

class lqueue(self):
    def __init__(self):
        self.list = []
    
    # 入队
    def inq(self.item):
        self.list.append(item)
    # 出队
    def outq(self):
        self.list.pop(0)
    # 判断是否为空
    def is_empty(self):
        return self.list == []
    # 队列长度
    def qlength(self):
        return len(self.list)

标准队列

python的queue模块提供了一个先进先出的队列类型Queue。Queue主要有以下几种方法:

  • put():在队列尾部添加元素
  • get():从队列头部取出元素,返回队列头部元素
  • empty():判断队列是否为空
  • full():判断队列是否达到最大长度限制
  • qsize():队列当前长度
from queue import Queue
# maxsize=0表示不限制队列长度
q = Queue(maxsize=0)
q.put(1)
q.put(2)
print(q.queue) # deque([1, 2])
q.get() # 1
print(q.queue) # deque([2])
print(q.qsize()) # 1
print(q.empty()) # false
print(q.full()) # false
相关文章
|
6月前
|
安全 开发者 Python
python队列(Queue)
python队列(Queue)
296 1
|
6月前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
6月前
|
Python
Python实现数据结构(如:链表、栈、队列等)。
Python实现数据结构(如:链表、栈、队列等)。
278 0
|
6月前
|
前端开发 Python
Python中如何用栈实现队列
Python中如何用栈实现队列
237 0
|
6月前
|
安全
python_threading多线程、queue安全队列
python_threading多线程、queue安全队列
56 2
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 09. 用两个栈实现队列
使用两个栈实现队列的Python解决方案,包括初始化两个栈、实现在队列尾部添加整数的appendTail方法和在队列头部删除整数的deleteHead方法,以及相应的示例操作。
39 2
|
3月前
|
数据采集 Java Python
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
|
3月前
|
前端开发 Python
数据结构Python用队列实现杨辉三角形
数据结构Python用队列实现杨辉三角形
34 0
|
3月前
|
Python
【Leetcode刷题Python】641.循环双端队列
文章介绍了如何实现一个循环双端队列,包括其操作如插入、删除、获取队首和队尾元素,以及检查队列是否为空或已满,并提供了Python语言的实现代码。
23 0
|
3月前
|
Python
【Leetcode刷题Python】232. 用栈实现队列
如何使用Python语言通过两个栈来实现队列的所有基本操作,包括入队(push)、出队(pop)、查看队首元素(peek)和判断队列是否为空(empty),并提供了相应的代码实现。
21 0