- 是一种数据结构
- 是数组操作的子集合
- 只能从栈的一端添加元素,也只能从栈的一端取出元素,这一端被称之为栈顶
- int getSize(); O(1)
- boolean isEmpty(); O(1)
- void push(E e); O(1) 均摊
- E pop(); O(1) 均摊
- E peek();O(1)
- 不要完美主义,掌握好度
- 数据结构与算法的主要目标是,理解各个数据结构的底层实现
- 队列也是一种线性数据结构
- 相比数组,队列对应的操作是数组的子集
- 队列只能从一端入(对尾),一端出(对头),就像:排队
- 时间复杂度:
int getSize(); O(1) boolean isEmpty(); O(1) void enqueue(E); O(1) 均摊 E dequeue(); O(n) E getFront(); O(1)
- 循环队列主要弥补了数组队列在出对操作时时间复杂度为O(n)的短板,使得复杂度变成均摊的O(1)