队列简介
队列(Queue)特点:
1、队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。
2、在队尾添加元素,在队头添加元素。
队列的存储结构
队列与栈一样是一种线性结构,因此以常见的线性表如数组、链表作为底层的数据结构。
队列的基本操作:
q.empty() 如果队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队列首元素但不返回其值
q.front() 返回队首元素的值,但不删除该元素
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值,但不删除该元素
q.swap() 交换两个队列的元素
代码:
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int> q;
cout << "如果队列为空返回true,否则返回false q.empty(): " << q.empty() << endl;
cout << "返回队列中元素的个数 q.size(): " << q.size() << endl<<endl;
for (int i = 0; i < 10; i++)
{
q.push(i);
cout << "在队尾压入新元素成功 q.push("<<i<<")"<<endl;
cout << "在队尾压入的新元素 q.back(" << i << "): " << q.back() << endl;
}
cout <<endl<< "返回队列中元素的个数 q.size(): " << q.size() << endl;
q.front();
cout <<endl<< "执行q.front() 返回队首元素的值,但不删除该元素"<<endl;
q.pop();
cout << "执行q.pop() 删除队列首元素但不返回其值" << endl;
q.front();
cout << "执行q.front() 返回队首元素的值,但不删除该元素" << endl;
cout << "返回队列中元素的个数 q.size(): " << q.size() << endl;
return 0;
}
小结
队列底层是线性结构,把链表弄懂了就可以很轻松的理解队列的数据结构和操作。
如果想了解栈的基本操作,看一看这个c++ 栈 STL的基本操作