双向队列

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

提示

 

来源

wanglin

演示样例程序

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
int flag[10010];
int main()
{
deque<int >q;
int n,m,i,k;
char str[10];
memset(flag,0,sizeof(flag));
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s",str);
if(strcmp(str,"LIN")==0)
{
cin>>m;
q.push_front(m);
}
else if(strcmp(str,"RIN")==0)
{
cin>>m;
q.push_back(m);
}
else if(strcmp(str,"LOUT")==0)
{
if(!q.empty())
q.pop_front();
else
flag[i]=1;
}
else if(strcmp(str,"ROUT")==0)
{
if(!q.empty())
q.pop_back();
else
flag[i]=1;
} }
k=q.front();
q.pop_front();
cout<<k<<' ';
while(!q.empty())
{
k=q.front();
q.pop_front();
cout<<k<<' ';
}
cout<<endl;
for(i=1;i<=n;i++)
{
if(flag[i])
cout<<i<<" "<<"ERROR"<<endl;
}
}



双向队列(STL做法)的更多相关文章

  1. 双向队列 STL

    题目描述 想想双向链表……双向队列的定义差不多,也就是说一个队列的队尾同时也是队首:两头都可以做出队,入队的操作.现在给你一系列的操作,请输出最后队列的状态:命令格式:LIN X  X表示一个整数,命 ...

  2. STL之deque双向队列

    deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,提供随机访问,deque在接口上和vector非常相似,下面列出deque的常用成员函数: Table 6.9. C ...

  3. stl中双向队列用法

    双向队列的操作如下: d[i]:返回d中下标为I的元素的引用. d.front():返回的一个元素的引用. d.back():返回最后一个元素的引用. d.pop_back():删除尾部的元素.不返回 ...

  4. STL之deque(双向队列)

    deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque在vector函数的基础上增 ...

  5. STL --> deque双向队列

    deque简介 deque是双向开口的连续性存储空间.虽说是连续性存储空间,但这种连续性只是表面上的,实际上它的内存是动态分配的,它在堆上分配了一块一块的动态储存区,每一块动态存储去本身是连续的,de ...

  6. STL之双向队列(dequeue)

    //双向队列 deque #include <deque> #include <cstdio> #include <algorithm> using namespa ...

  7. 队列(Queue)--环形队列、优先队列和双向队列

    1. 队列概述 队列和堆栈都是有序列表,属于抽象型数据类型(ADT),所有加入和删除的动作都发生在不同的两端,并符合First In, First Out(先进先出)的特性. 特性: ·FIFO ·拥 ...

  8. deque双向队列(转)

    deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数:   deque的实现比较复杂,内部会维 ...

  9. HDU--杭电--3415--Max Sum of Max-K-sub-sequence--队列--双向队列

    Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

随机推荐

  1. web开发框架之Django基础

    在脚本中如何进行Django的运行 if __name__ == '__main__': import os import django # 注意路径(当前所在的位置,要加载Django的配置文件) ...

  2. c++-string-1

    解答注意: 我写的时候考虑了: 1) "     my"(设置flag,为true时表示上一个是非空格字符) 2) "hello John"(最后不是空格结尾, ...

  3. Beyond Compare 30天评估期结束解决办法

    打开Beyond Compare 4,提示已经超出30天试用期限制 解决方法: 1.修改文件 修改C:\Program Files\Beyond Compare 4\BCUnrar.dll ,这个文件 ...

  4. Leetcode 365.水壶问题

    水壶问题 有两个容量分别为 x升和 y升的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水. 你允许: 装满 ...

  5. window.location.href跳转问题

    任务中遇到这样一个问题,用window.location.href跳转一到个网址,但是每次都出错,显示网址前面加上了文件所在文件夹的路径 示例如下: window.location.href=&quo ...

  6. BZOJ 3527 [Zjoi2014]力 ——FFT

    [题目分析] FFT,构造数列进行卷积,挺裸的一道题目诶. 还是写起来并不顺手,再练. [代码] #include <cmath> #include <cstdio> #inc ...

  7. 【bzoj1710】[Usaco2007 Open]Cheappal 廉价回文

    [bzoj1710][Usaco2007 Open]Cheappal 廉价回文 Description 为了跟踪所有的牛,农夫JOHN在农场上装了一套自动系统. 他给了每一个头牛一个电子牌号 当牛走过 ...

  8. K-th Number(poj 2104)

    题意:静态第K大 #include<cstdio> #include<iostream> #include<cstring> #define N 200010 #d ...

  9. 关于a标签的onclick和href谁先执行的问题

    今天上午遇到一个问题,我想在a标签跳转的时候增加一些程序上的判断,但又不会影响a标签的正常跳转,于是就有了这篇文章. 我的具体代码是这样的: <a href="http://www.m ...

  10. 手动实现jQuery的toggle()效果

    有时候我们希望实现toggle()切换效果,但是切换的同时需要完成一些其他要做的事情.所以我们需要对jQuery的toggle()函数进行改造. 下面好test2()函数就是一个实现toggle效果的 ...