本文是学习陆老师的《python全栈工程师 - 数据结构与算法》课程的笔记,欢迎学习交流。同时感谢陆老师的精彩传授!
一、课程目标
- 队列的概念
- 队列的python实现
二、详情解读
01.什么是队列: 队列是一种线性表
1、队列从尾部插入、从头部弹出
2、队列的数据访问遵从FIFO(first-in first-out)协议
3、除了基本队列结构以外还有双向队列与优先队列
02.队列的Python实现
主要方法列表:
方法 | 说明 |
---|---|
q.isEmpty() | 队列是否为空 |
q.__ len __() | 队列中的项目数 |
q.put() | 在队列压入一项 |
q.get() | 如果q不为空,返回并删除第一项,否则抛出错误EmptyError |
队列的实现
链表实现队列
1、使用链表实现队列,从链表首部压入与尾部弹出
2、需要设定一个尾部位置标志
3、时间复杂度为O(1)
02.Python内置队列
queue模块与collections.deque
1.queue.Queue - FIFO队列
2.queue.LifoQueue - LIFO队列
3.queue.PriorityQueue - 优先级队列
4.queue.deque(collections.deque) - 双向队列
队列中常用方法
方法 | 说明 |
---|---|
q.empty() | 队列是否为空 |
q.qsize() | 队列中的项目数 |
q.full() | 队列是否已满 |
q.put() | 插入数据 |