日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双向队列(STL做法)

發布時間:2024/6/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双向队列(STL做法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雙向隊列(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做法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。