您的位置:首页 > 产品设计 > UI/UE

hdu 1509 Windows Message Queue

2013-07-27 10:51 295 查看
链接:点击打开链接

题意:一个窗口消息队列,GET弹出队列中的消息(按最小堆弹出),优先级相同,先进先出,PUT则输入消息进队列。

就是一优先队列,最小堆。。

#include"stdio.h"
#include"string.h"
#include"queue"
using namespace std;

struct node
{
char name[33];
int mes;
int val;
int num;
friend bool operator<(node n1,node n2)
{
if(n1.val!=n2.val)    return n2.val<n1.val;
return n2.num<n1.num;
}
};

int main()
{
priority_queue<node>q;
node cur,next;
int k=1;
char str[55];

while(scanf("%s",str)!=-1)
{
if(strcmp(str,"GET")==0)
{
if(!q.empty())
{
cur=q.top();
q.pop();

printf("%s %d\n",cur.name,cur.mes);
}
else    printf("EMPTY QUEUE!\n");
}
else
{
scanf("%s%d%d",next.name,&next.mes,&next.val);
next.num=k++;
q.push(next);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: