1.认识队列
(1)队列:先进先出(FIFO,First in first out)的线性
表,最先插入的元素最先出来。
(2)队列的基本操作
入队:在队列的尾部添加新元素
出队:移除队头元素
const int Max=10000;
int que[Max];//数组队列
int head=0, tail =- 1, sum=0;
void push(int x)//把x入队
{
tail++;
que[tail]=x;
//que[++tail]=x;
sum++;
}
void pop ()
{
head++;
sum-;
}
2.循环队列
循环队列是一种基于先进先出原则 并 将队尾连接到队首形成一个环的特殊数据结构。变化时,加一个模除长度
tail = (tail+1)%size;
head = (head+1)%size;
3. STL中的queue
(1)创造一个队列:queue<数据类型>名字;
(2)queue的成员函数
push(x); //在队列末尾加入一个元素x,无返回值
pop(); //删除队列第一个元素,无返回值
front(); //返回第一个元素,即队首元素
back(); //返回最后一个元素,即队尾元素
empty(); //如果队列空则返回真,返回值是bool类型。
size(); //返回队列中元素的个数
(3)头文件:#include<queue>
queue<int> q;
q. push(1) ;
q. push(2) ;
cout << q.front() << endl;//输出1
cout << q.back() << endl;//输出2
cout << q.size() << endl;//输出2
cout << q. empty( )<< endl;//输出0
q.pop(); //删掉了1
cout << q.front( )<< endl;//输出2
while(!q.empty())//依次出队并输出出队序列
{
cout << q. front () << " ";
q. pop () ;
}