队列
队列(queue)一样都是线性数据结构,它的特征如下:
- 队列中的数有的特征,它遵循先进先出的原则,这也是栈的特征。
- 可以在队尾添加元素,队头添加元素,也可以队头删除元素。
基础队列的特征
队列的概念
- 队头和队尾:按照思想,从队头删除元素,从队尾入队元素。
- 入队:插入队列的操作,是元素入队。
- 出队:删除队列的操作,让元素出队。
我们现在有一个队列,为[1,3]:
添加元素时,元素只能从队尾一端进入队列,也即是2只能跟在1后面。
当然,出队也同理:
元素只能从队首出队列。
队列操作
- 建立队列:
queue<int> qu
- 入队:
qu.push()
- 出队:
qu.pop()
- 访问队首:
qu.front()
- 判断队列是否为空:
qu.empty()
代码组织
关于队列的源代码
queue<int> q;
while(!q.empty() ){
q.pop();
}
q.push_back(v):
单调队列
它的队首和普通的队列一样,只能删除元素,而它的队尾既可以添加元素也可以删除元素。 他随队尾输出,出队。
单调队列的作用&原理
就是用来维护一段区间内的单调上升,下降性质,导出性质就是也可以用来维护一个区间内的值。他的原理是这样的: