zoukankan      html  css  js  c++  java
  • 【STL】双向队列

    双向队列 

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

          想想双向链表……双向队列的定义差不多,也就是说一个队列的队尾同时也是队首;两头都可以做出队,入队的操作。
    现在给你一系列的操作,请输出最后队列的状态;
    命令格式:
    LIN X  X表示一个整数,命令代表左边进队操作;
    RIN X  表示右边进队操作;
    ROUT
    LOUT   表示出队操作;

    输入

    第一行包含一个整数M(M<=10000),表示有M个操作;
    以下M行每行包含一条命令;
    命令可能不合法,对于不合法的命令,请在输出中处理;

    输出

    输出的第一行包含队列进行了M次操作后的状态,从左往右输出,每两个之间用空格隔开;
    以下若干行处理不合法的命令(如果存在);
    对于不合法的命令,请输出一行X ERROR
    其中X表示是第几条命令;

    示例输入

    8
    LIN 5
    RIN 6
    LIN 3
    LOUT
    ROUT
    ROUT
    ROUT
    LIN 3

    示例输出

    3
    7 ERROR

    不会双向队列的可以看一下这个链接:http://blog.csdn.net/morewindows/article/details/6946811
    #include<iostream>
    #include<algorithm>
    #include<queue>
    using namespace std;
    int main()
    {
        deque<int>q;
        string s;
        int num[100];
        int n, i, t, k=1, cnt=0;
        cin>>n;
        while(n--)
        {
            cin>>s;
    
            if(s=="LIN")
            {
                cin>>t;
                q.push_front(t);
            }
            if(s=="RIN")
            {
                cin>>t;
                q.push_back(t);
            }
            if(s=="LOUT")
            {
                if(q.empty())
                {
                    num[cnt++] = k;
                }
                else
                {
                    q.pop_front();
                }
            }
            if(s=="ROUT")
            {
                if(q.empty())
                {
                    num[cnt++] = k;
                }
                else
                {
                    q.pop_back();
                }
            }
            k++;
        }
        while(!q.empty())
        {
            cout<<q.front();
            q.pop_front();
            if(q.empty())
                cout<<endl;
            else cout<<" ";
        }
            for(i=0; i<cnt; i++)
            {
                cout<<num[i]<<" ERROR"<<endl;
            }
        return 0;
    }
  • 相关阅读:
    火狐浏览器推荐插件原创
    vue转义字符转换成普通字符
    vue中关于插槽的使用
    vue调取摄像头的方法(可以直接使用)
    vue调用andriod方法
    vue中格式化时间戳(可直接使用)
    vue关于$router的使用
    轻松了解Spring中的控制反转和依赖注入(二)
    更加优雅地配置Spring Securiy(使用Java配置和注解)
    更加优雅地搭建SSH框架(使用java配置)
  • 原文地址:https://www.cnblogs.com/6bing/p/4122964.html
Copyright © 2011-2022 走看看