今天,就给大家说一个非常好用的数据结构——队列(FIFO);
希望可以得到大家的三连!
【文章目录】:
Q1 基本队列概念
队列和栈不一样,他是先进先出类似于小时候食堂打饭,而排在第一位的是队头(head指针)最后一位是队尾(tail指针),入队从队尾,tail++,head不变,出队时head也要++;比如下面这个队列q:
Q:但如果我们加入一个Q(8)数据是不是真溢出了呢?
当然不是,在1,2是还有空间,所以没有溢出,但需要我们对其进行优化和改动,如下面两种方式:
(1)把后一个数据移到第一个来:
(2)循环队列:
这就是队列的基本概念,具体代码见下;
Q2 基本队列代码
(1)专属头文件;
头文件:#include<queue>
(2) 进行排序的方式【重点】:
(1)-priority_queue<int,vector<int>,greater<int> >q;升序序列
(2)-priority_queue<int,vector<int>,less<int> >q;降序序列
(3)基本调用【干货】:
(1)——Queue <int> q1-创建了一个q1队列
(2)——q1.push(E)-放入队列
(3)——q1.front(E)-返回引用头元素,不移除
(4)——q1.back(E)-返回引用尾元素,不移除
(5)——q1.pop(E)-从队列中移除元素,但不返回