定义及特性
队列queue是一种
先进先出
的线性表。它只允许在表的一端进行插入,而在另一端删除元素。允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)。
特性:
- 不能进行遍历(不提供迭代器)
- 不支持随机访问
- 只能在队头进行删除, 在队尾进行插入
头文件
#include< iostream>
#include< queue >
using namespace std;
初始化
queue<int> q; //定义空队列q
queue<double> q[20]; //规定元素个数为20
常用函数
①push() 入队
q.push(10);
q.push(20);
q.push(30);
q.push(100); //从队头到队尾元素依次为10,20,30,100
②pop() 删除队头元素
q.push(10);
q.push(20);
q.push(30);
q.push(100);
q.pop(); //从队头到队尾元素依次为20,30,100
③front() 返回队头元素
q.push(10);
q.push(20);
q.push(30);
q.push(100);
q.pop();
cout << q.front() <<endl; //输出结果为20
④back() 返回队尾元素
q.push(10);
q.push(20);
q.push(30);
q.push(100);
cout << q.back() <<endl; //输出结果为100
⑤size() 返回队列的元素个数
q.push(10);
q.push(20);
q.push(30);
q.push(100);
q.pop();
cout << q.size() <<endl; //输出结果为3
⑥empty() 队列为空返回真,非空返回假
while(!q.empty())
对以上操作进行实现:
扫描二维码关注公众号,回复:
8751778 查看本文章
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int> q; //q为空队列
q.push(10);
q.push(20);
q.push(30);
q.push(100); //将10,20,30,100入队,从队头到队尾依次为10,20,30,100
cout << "队列内元素个数:" << q.size() << endl;
cout << "输出队头元素:" << q.front() << endl ;
cout << "输出队尾元素:" << q.back() << endl ;
q.pop(); //删除队头元素
cout << "输出栈内现在元素:" << endl;
while(!q.empty()) //q非空,此循环是将队列内元素全部输出
{
cout << q.front() << " "; //输出队头元素
q.pop(); //删除队头元素
}
return 0;
}
运行结果: