先进先出
队列大概模样
代码截屏:
#include
using namespace std;// 用数组模拟栈
const int N=100;
int que[N],k=0; // que代表的是队列数组,k就是队尾指针
//入队:队尾指针先+1,然后入队
que[++k]=66;//出队:队顶指针先-1,然后出队
for(int i =0;ique[i]=que[i+1];
}
k--;// 判断队列是否为空
if(k==0) true
else false//队首
que[0];//队尾
que[k];
#include
//队列 queue q;
//向队尾插入一个元素q.push();//返回队头元素q.front();//返回队尾元素q.back();//弹出对头元素q.pop();//元素个数q.size();//清空队列q = queue();
//push/pop//push入队尾,pop入队头 for(int i=0;i<10;i++) q.push(i);q.pop();//front/backint x=q.front();int y=q.back();cout<<"front= "<
用法详解点这里
定义
//升序序列priority_queue,greater > qg;//降序序列priority_queue,less > ql;
描述:
在银行营业大厅共服务3种客户,类型为A\B\C,大厅分别设置了3个窗口分别服务三种客户,即每个窗口只服务一种客户。现有一批客户来银行办理业务,每个客户都有类型和办理业务时间。每个窗口按照客户到来的顺序进行服务。
输入:
第一行输入先输入n表示客户数量
第二行输入每个客户的类型,数据之间用用空格隔开
第三行输入每个客户的办理时间,数据之间用用空格隔开
/示例/
8
A B C B C A A A
10 20 30 40 50 60 70 80
1
2
3
4
输出:
第一行输出A类客户的平均办理时间 :
第二行输出B类客户的平均办理时间 :20+40=60/2=30
第三行输出C类客户的平均办理时间
/示例/
55
30
40
解题思路:
为了算出各类客户的平均办理时间,首先要知道的是各类客户花费的总时间。
3种窗口服务三种客户,也就是算出每个窗口的时间。通过将每个窗口抽象成一个队列,将时间作为内容填入队列,即可算出总时间。
除了每个窗口的队列以外,我们还需要将输入的顺序进行存储,因此总共需要4条队列。
#include
#include
using namespace std;int main() {int t; //次数int m; //待输入的时间char ch; //待输入的客户类型queue myQe, myQa[3]; // Qe代表次序,Qa代表窗口cin >> t;// 输入部分while (t--) {cin >> ch;myQe.push(ch-65); //注意此处push进去的是一个数字,为了查找方便,当ch=A时,把0给push进去,以此类推。A字符转化为数字为65}//输入部分while (!myQe.empty()) {cin >> m;int num = myQe.front(); //根据顺序获取窗口myQe.pop();myQa[num].push(m);}//输出部分for (int i = 0; i < 3; i++) {int n = myQa[i].size(); //计算平均数时需要的分母int sum = 0;while (!myQa[i].empty()) {sum += myQa[i].front();myQa[i].pop();}cout << sum / n << endl;}
}
#include
#include
using namespace std;int main() {int t; //次数int m; //待输入的时间char ch; //待输入的客户类型queue myQe, myQa[3]; // Qe代表次序,Qa代表窗口cin >> t;// 输入部分while (t--) {cin >> ch;; //注意此处push进去的是一个数字,为了查找方便,当ch=A时,把0给push进去,以此类推。A字符转化为数字为65}//输入部分while (!myQe.empty()) {cin >> m;int num = myQe.front(); //根据顺序获取窗口;//myQe弹出;//myQa[num]入队列m}//输出部分for (int i = 0; i < 3; i++) {int n = myQa[i].size(); //计算平均数时需要的分母;//定义num,并初始化while () {//判断myQa[i]是否为空;//sum加上当前myQa[i]的值;//myQa[i]弹出};//输出 sum 除以 n 答案 }
}