双向队列(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
提示
来源
演示样例程序
#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;}
}
转载于:https://www.cnblogs.com/mthoutai/p/6848596.html
双向队列(STL做法)相关推荐
- sdut 双向队列(STL)
deque<ll>q;//定义一个双向队列q,类型为long long q.push_front(a);//将a从队首插入队列 q.push_back(a);//将a从队尾插入队列 q.p ...
- STL中的双向队列deque
1.STL中的双向队列deque deque也是顺序容器的一种,同时也是一个可变长数组.要使用deque,需要包含头文件deque.所有适用于vector的操作都适用于deque. deque和vec ...
- STL系列之一 deque双向队列
原文地址:http://blog.csdn.net/morewindows/article/details/6946811 deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删 ...
- 实验8.3 C++标准模板库(STL)中的双向队列类(deque)
题目 使用C++标准模板库(STL)中的双向队列类(deque)重新实现上一小题. C++代码如下: #include <iostream> #include <deque> ...
- DFS、栈、双向队列:CF264A- Escape from Stones
题目: Squirrel Liss liv Escape from Stonesed in a forest peacefully, but unexpected trouble happens. S ...
- Python培训教程:Python内置数据结构之双向队列
经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的.在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以 ...
- Python内置数据结构之双向队列
经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的.在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以 ...
- Algs4-1.3.33一个双向队列Deque-双向链表实现
1.3.33Deque.一个双向队列(或者称为deque)和栈或队列类似,但它同时支持在两端添加或删除元素.Deque能够存储一组元素并支持表1.3.9中的API: 表1.3.9泛型双向队列的API ...
- C++ Double Ended Queues(双向队列)
双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样). Constructors 创建一个新双向队列 Operators 比较和赋值双向队列 assign() 设置双向队列的值 ...
最新文章
- 这些Python常用的工具和学习资源你都知道么?
- HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程
- Windows环境下IOCP和SELECT模型性能比较
- SpringBoot 页面跳转后css和js效果都无效了
- 【CV论文解读】AAAI2021 | 在图卷积网络中超越低频信息
- HDU2896(病毒侵袭--AC自动机)
- Python网络编程中的select 和 poll I/O复用的简单使用
- a20_v2.0_k70运行在xhda20开发板
- How to check firmware and drivers of a VMware ESXi host
- 自定义有多个按钮节点的SliderView
- Spark基础学习笔记17:掌握RDD算子
- java程序在内存中的存储分配
- 解密《一个操作系统的实现》这本书
- python自动发邮件mysql_python自动化六--操作mysql,redis,发送邮件,EXCEL,MD5加密
- python opencv轮廓检测_OpenCV-Python实现轮廓检测实例分析
- C:\Program Files (x86)\SogouInput\Components\程序异常结束 ,QT
- JavaIO操作——字节输出流【OutputStream】
- MIPS处理器 CPU控制信号
- python我想对你说_python学习第15天----名称空间、组合
- 【MOGDB/openGauss的txid_snapshot 数据类型和相关函数】