Python数据结构基础知识(7):队列Queue

队列Queue是一种先进先出FIFO(first in first out)的排列方式,就和排队入场是一样的。

而双端队列deque 即队伍的头尾可以互换,两端既可以进也可以出。

在Python中常用的有两种实现队列的方法:

一、列表List方法

append():从右端进入

pop(0):从左端出(需要注意pop()默认是从右端出,这样就不符合FIFO了)

s = ['a', 'b', 'c']

s.append('d')

s.pop(0)

print(s)-------------->['b', 'c', 'd']

由于List的删除方式pop(0)需要后面所有元素向前补齐一位,算法效率较低。而第二种方法可以有效的避免这个问题。

二、调用deque方法

 append():从右端进入

pop():从右端出

appendleft():从左端进入

popleft():从左端出

可以看出要满足FIFO条件,append()和popleft()通常一起使用(右进左出),appendleft()和pop()通常一起使用(左进右出)。

from collections import deque

q = deque(['a', 'b', 'c'])

q.append('d')

q.popleft()

print(q)---------------->deque(['b', 'c', 'd'])

三、复杂度

访问Access:O(N)

搜索Search:O(N)

插入Insert:O(1)

删除Remove:O(1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值