数据结构-队列
队列是一种特殊的线性表,他的性质只允许元素从最后入,从最前出,所以他也满足FIFO(First In First Out)
性质,也就是先进先出。
我们可以先试着使用函数在C++中定义一个队列:
#include <bits/stdc++.h>
using namespace std;
int queue[100]; // 定义一个长度100的数组来模拟队列
int head=0, tail=0, size=0;
void pop(){
head ++; // 让头指针增加1达到删除作用
head %= 100; // 环形队列达到节省空间的作用
size --; // 总长度减少1
}
void push(int x){
queue[tail] = x; // 队列尾部数据设为x达到弹入作用
tail ++; // 尾指针增加1为下一次push做准备
tail %= 100; // 与上面同理,使用环形队列
size ++; // 总长度增加1
}
对于一个环形队列,当头或者尾指针到达数组最后时,让他回到0号下标的位置可以达到节省空间的效果。
当然,我们可以使用C++的STL模板库来模拟队列:
#include <bits/stdc++.h> // bits/stdc++.h库中有队列的模板,如果不使用需要导入queue库
queue <typename> s; // 定义一个typename类型的队列
s.pop() // 弹出队列头部的元素
s.push(x) // 在队列尾部弹入x
s.size() // int类型,返回s的大小
s.empty() // bool类型,如果s为空返回true,否则返回false
s.front() // 返回s的头部元素
s.tail() // 返回s的尾部元素
希望可以给你带来新的知识,谢谢阅读。
标签:队列,queue,int,tail,100,数据结构,size From: https://www.cnblogs.com/Earnoise/p/stl-queue.html