首页 > 其他 > 详细

队列和栈

时间:2016-02-13 18:22:44      阅读:302      评论:0      收藏:0      [点我收藏+]

  这里记一下STL的队列和栈。

  队列。

  头文件<queue>,操作有pop,push,front,empty,size,back,声明是queue<数据类型>q。

 

  更有用的是优先队列。

  头文件同队列,操作有pop,push,top,empty,size,声明是priority_queue<数据类型>q。

  需要学习的是一些cmp的写法,现在习惯写在数据里面,还在学习中。。。

  hdu1509为模板题。

 

#include <cstdio>
#include <queue>
using namespace std;
int co;
char s[40];
struct node
{
    char name[20];
    int num,pri,ID;
    bool operator < (const node &k) const
    {
        if(k.pri!=pri) return pri>k.pri;
        else return num>k.num;
    }
}p;
priority_queue<node>q;
int main()
{
    while(scanf("%s",s)!=EOF)
    {
        if(s[0]==‘P‘)
        {
            scanf("%s%d%d",p.name,&p.ID,&p.pri);
            ++co;
            p.num=co;
            q.push(p);
        }else
        {
            if(q.empty()) printf("EMPTY QUEUE!\n");
            else
            {
                p=q.top();
                q.pop();
                printf("%s %d\n",p.name,p.ID);
            }
        }
    }
    return 0;
}

 

 

 

  栈。

  头文件是<stack>。操作有pop,push,top,empty,size,声明是stack<数据类型>s。

 

队列和栈

原文:http://www.cnblogs.com/cons/p/5188072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!