python小记-队列

队列(Queue)是一种常见的数据结构,它遵循先进先出(First-In-First-Out,FIFO)的原则。在队列中,新元素(也称为项)总是添加到队列的末尾,而最早添加的元素总是在队列的前面,类似于排队等待的现象。

队列的主要操作包括:

  1. 入队(enqueue):将新元素添加到队列的末尾。
  2. 出队(dequeue):从队列的前面移除最早添加的元素。
  3. 判空(isEmpty):检查队列是否为空,如果队列中没有任何元素,则返回True,否则返回False。
  4. 获取队首元素(front):获取队列的前面最早添加的元素,但不移除它。

队列常用的实现方式包括:

  1. 数组实现:使用数组来存储队列的元素,入队和出队的时间复杂度为O(1)。
  2. 链表实现:使用链表来存储队列的元素,入队和出队的时间复杂度为O(1)。

队列在计算机科学和算法中有广泛的应用,例如:

  1. 广度优先搜索(BFS):在图的遍历和搜索中,BFS使用队列来实现按层次遍历图的节点。
  2. 任务调度:在操作系统中,任务调度器使用队列来管理待执行的任务,按照优先级和先后顺序进行调度执行。
  3. 线程池:在多线程编程中,线程池使用队列来存储待执行的任务,从队列中取出任务分配给空闲线程执行。

在Python中,可以使用内置的collections模块中的deque类来实现队列。deque是一个双端队列,支持高效的在两端进行元素的添加和删除操作。以下是使用deque实现队列的示例:

from collections import deque

# 创建一个空队列
queue = deque()

# 入队操作
queue.append(1)
queue.append(2)
queue.append(3)

# 出队操作
first_element = queue.popleft()
print(first_element)  # 输出: 1

# 获取队首元素
front_element = queue[0]
print(front_element)  # 输出: 2

以上代码演示了如何使用deque来实现队列的入队和出队操作,并获取队首元素。

图的BFS

当使用BFS算法解决问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值