我是靠谱客的博主 威武河马,这篇文章主要介绍小组队列-------------------------思维(队列),现在分享给大家,希望可以做个参考。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析:
先开一个数组专门记录编号的
开两个队列。一个存储编号为x的队列存的数,一个存储编号(方便得知哪个编号在前)

对于插入操作:
找出数x的编号pos,把x放到编号为pos的队列中,然后编号pos放到编号队列中

对于出队操作:
找出编号队列中队头元素为pos ,那么编号为pos的队列出队一个元素。
如果编号为pos的队列为空,那么编号队列就要删除该编号(出队)

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10,M=1010;
int id[N];
int t,cnt,x,k;
int main()
{
while(cin>>t,t)
{
queue<int> teamid,person[M];
printf("Scenario #%dn",++k);
for(int i=1;i<=t;i++)
{
cin>>cnt;
while(cnt--)
{
cin>>x;
id[x]=i;
}
}
string s;
while(cin>>s,s!="STOP")
{
if(s=="ENQUEUE")
{
cin>>x;
int pos=id[x];
if(person[pos].empty()) teamid.push(pos);
person[pos].push(x);
}
else
{
int pos=teamid.front();
cout<<person[pos].front()<<endl;
person[pos].pop();
if(person[pos].empty()) teamid.pop();
}
}cout<<endl;
}
}

最后

以上就是威武河马最近收集整理的关于小组队列-------------------------思维(队列)的全部内容,更多相关小组队列-------------------------思维(队列)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部