双向队列(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

提示

来源

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();elseflag[i]=1;}else if(strcmp(str,"ROUT")==0){if(!q.empty())q.pop_back();elseflag[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;}
}


posted on 2017-05-13 12:12 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/6848596.html

双向队列(STL做法)相关推荐

  1. sdut 双向队列(STL)

    deque<ll>q;//定义一个双向队列q,类型为long long q.push_front(a);//将a从队首插入队列 q.push_back(a);//将a从队尾插入队列 q.p ...

  2. STL中的双向队列deque

    1.STL中的双向队列deque deque也是顺序容器的一种,同时也是一个可变长数组.要使用deque,需要包含头文件deque.所有适用于vector的操作都适用于deque. deque和vec ...

  3. STL系列之一 deque双向队列

    原文地址:http://blog.csdn.net/morewindows/article/details/6946811 deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删 ...

  4. 实验8.3 C++标准模板库(STL)中的双向队列类(deque)

    题目 使用C++标准模板库(STL)中的双向队列类(deque)重新实现上一小题. C++代码如下: #include <iostream> #include <deque> ...

  5. DFS、栈、双向队列:CF264A- Escape from Stones

    题目: Squirrel Liss liv Escape from Stonesed in a forest peacefully, but unexpected trouble happens. S ...

  6. Python培训教程:Python内置数据结构之双向队列

    经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的.在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以 ...

  7. Python内置数据结构之双向队列

    经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的.在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以 ...

  8. Algs4-1.3.33一个双向队列Deque-双向链表实现

    1.3.33Deque.一个双向队列(或者称为deque)和栈或队列类似,但它同时支持在两端添加或删除元素.Deque能够存储一组元素并支持表1.3.9中的API: 表1.3.9泛型双向队列的API ...

  9. C++ Double Ended Queues(双向队列)

    双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样). Constructors 创建一个新双向队列 Operators 比较和赋值双向队列 assign() 设置双向队列的值 ...

最新文章

  1. 这些Python常用的工具和学习资源你都知道么?
  2. HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程
  3. Windows环境下IOCP和SELECT模型性能比较
  4. SpringBoot 页面跳转后css和js效果都无效了
  5. 【CV论文解读】AAAI2021 | 在图卷积网络中超越低频信息
  6. HDU2896(病毒侵袭--AC自动机)
  7. Python网络编程中的select 和 poll I/O复用的简单使用
  8. a20_v2.0_k70运行在xhda20开发板
  9. How to check firmware and drivers of a VMware ESXi host
  10. 自定义有多个按钮节点的SliderView
  11. Spark基础学习笔记17:掌握RDD算子
  12. java程序在内存中的存储分配
  13. 解密《一个操作系统的实现》这本书
  14. python自动发邮件mysql_python自动化六--操作mysql,redis,发送邮件,EXCEL,MD5加密
  15. python opencv轮廓检测_OpenCV-Python实现轮廓检测实例分析
  16. C:\Program Files (x86)\SogouInput\Components\程序异常结束 ,QT
  17. JavaIO操作——字节输出流【OutputStream】
  18. MIPS处理器 CPU控制信号
  19. python我想对你说_python学习第15天----名称空间、组合
  20. 【MOGDB/openGauss的txid_snapshot 数据类型和相关函数】

热门文章

  1. java gui 层次结构_javaGUI教学图形界面的层次结构.ppt
  2. ubuntu虚拟机卡住开机_虚拟机Ubuntu开机问题及解决方法
  3. 《江南百景图》,解谜经营背后的逻辑
  4. 皇室战争:暗夜女巫重做,去掉亡语机制后,她凉的可能会更快
  5. 乔布斯亲笔签名的Apple II手册 拍卖了511万元
  6. PHP foreach遍历数组(多种方式)
  7. Python编程专属骚技巧4
  8. Spring中bean的作用域
  9. python函数知识四 迭代器、生成器
  10. Swift5.1 语言指南(一) 关于Swift