栈
栈
Stack
是一种线性的数据结构,FILO
(先进后出)的操作,可以用顺序表实现,也可以用链表来实现。
操作
栈的基本操作包含:⬇️
- stack():创建空的栈
- push():入栈
- pop():出栈
- peek():返回栈顶元素
- is_empty():判断是否为空栈
- size():返回栈的元素个数
实现
1 | # coding: utf-8 |
5
4
3
2
1
队列
概念
队列queue
也是一种线性结构,方式是先进先出FIFO
, 想象成一支队伍。
- 允许插入数据的一端:队尾
- 允许删除的一端:队头
假设队列$q=(a_1, a_2 ,…, a_n)$,则$a_1$是队头元素,$a_n$是队尾元素。删除从$a_1$开始,添加从$a_n$开始
操作
几个重要的操作
- enqueue():插入元素
- dequeue():删除元素
- is_empty():判断是否为空
- size():返回元素个数
实现
1 | # coding: utf-8 |
1
2
3
4
5
双端队列
概念
能够在队头和队尾同时进行插入和删除操作的队列
实现
1 | # coding: utf-8 |
3
2
1
6
5
4