队列是一种先进先出的数据结构
理解为食堂打饭,先排队的人先打到
【注意】
队列总是从队尾加入元素,而从队首移除元素,并且满足先进先出的规则
一般来说
需要一个队首指针front来指向队首元素的前一个元素
而使用一个队尾指针rear来指向队尾元素
当使用数组来实现队列时,队首指针front和队尾指针rear为int型变量
(数组下标从0开始)
而当使用链表来实现队列时
则为int*型变量的指针
常规操作
①清空(clear)
使用数组来实现队列时,初始状态为front=-1,rear=-1
void clear()
{front=rear=-1;}
②获取队列内元素个数
rear-front
③判空
front=rear
④入队(push)
void push(int x)
{q[++rear]=x;}
⑤出队(pop)
void pop(){front++;}
⑥取队首元素(get_front)
int get_front()
{return q[front+1];}
⑦取队尾元素(get_rear)
int get_rear()
{return q[rear];}
与栈相同,出队操作和取队首、队尾元素操作必须在队列非空情况
可以用while循环反复pop出元素直到队列为空
或者直接重新定义一个队列以实现队列的清空
知识点来自于《算法笔记》