数据结构,就是一种数据存储、组织的方式
之前,我们应该是知道了两种不同的数据结构
链表和数组
链表支持快速插入和删除,不支持随机访问
数组不支持快速插入和删除,但支持随机访问
这一次,又会接触到一个新的数据结构——队列
队列操作受限,只能从前端进行删除,末端进行插入
类似于……去食堂排队打饭
主要操作一共有 5 种
push 入队
pop 出队
empty 判断队列是否为空
size 统计队列元素个数
front 访问队首元素
我们同样的,也可以使用数组来实现它
#include <iostream>
using namespace std;
int data[10005];
int front = 1,rear = 0;//front 首节点编号 rear 尾节点编号
void push(int x){
rear++;
data[rear] = x;
}
void pop(){
if(front <= rear){
front++;
}
}
int front_(){
if(front <= rear){
return data[front];
}else{
return -1;
}
}
int size(){
return rear - front + 1;
}
int main(){
for(int i = 1;i <= 10;i++){
push(i);
}
cout << size() << endl;
while(size() > 0){
cout << front_() << " ";
pop();
}
return 0;
}
但是!不用这么麻烦
C++中,已经有了队列的模板,调用就行了
#include <queue>
定义队列的方法非常简单
queue<T> q;
T : 队列存储的数据类型
q : 队列名称
初始的时候是空的
队列没有 clear() 函数,所以只能一个一个删
while (!q.empty()){
q.pop();
}
嗯…………队列的内容好少啊
大海啊……你全是水……