hdu1702 list or stack+queue

http://acm.hdu.edu.cn/showproblem.php?pid=1702

#include<iostream>
#include<cstdio>
#include<cstring>
#include<list>
using namespace std;
int main()
{
   // freopen("1.txt","r",stdin);
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int m,i,x;
        list<int>li;
        li.clear();
        char s[10],ss[10];
        scanf("%d %s",&m,s);
        if(strcmp(s,"FIFO")==0)
        {
            for(i=0; i<m; i++)
            {
                scanf("%s",ss);
                if(strcmp(ss,"IN")==0)
                {
                    cin>>x;
                    li.push_back(x);
                }
                else
                {
                    if(li.empty())
                        cout<<"None"<<endl;
                    else
                    {
                        cout<<li.front()<<endl;
                        li.pop_front();
                    }
                }
            }
        }
        else
        {
            for(i=0; i<m; i++)
            {
                scanf("%s",ss);
                if(strcmp(ss,"IN")==0)
                {
                    cin>>x;
                    li.push_back(x);
                }
                else
                {
                    if(li.empty())
                        cout<<"None"<<endl;
                    else
                    {
                        cout<<li.back()<<endl;
                        li.pop_back();
                    }
                }
            }
        }
    }
    return 0;
}

  

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<queue>
using namespace std;
int main()
{
   // freopen("1.txt","r",stdin);
    int n,x,m;
    char s[10],ss[10];
    stack<int>st;
    queue<int>q;
    scanf("%d",&n);
    while(n--)
    {
        while(!st.empty())
            st.pop();
        while(!q.empty())
            q.pop();
        scanf("%d %s",&m,s);
        if(strcmp(s,"FILO")==0)
        {
            for(int i=0; i<m; i++)
            {
                scanf("%s",ss);
                if(strcmp(ss,"IN")==0)
                {
                    cin>>x;
                    st.push(x);
                }
                else
                {
                    if(st.empty())
                        cout<<"None"<<endl;
                    else
                    {
                        cout<<st.top()<<endl;;
                        st.pop();
                    }
                }
            }
        }
        else
        {
            for(int i=0; i<m; i++)
            {
                scanf("%s",ss);
                if(strcmp(ss,"IN")==0)
                {
                    cin>>x;
                    q.push(x);
                }
                else
                {
                    if(q.empty())
                        cout<<"None"<<endl;
                    else
                    {
                        cout<<q.front()<<endl;
                        q.pop();
                    }
                }
            }
        }
    }
    return 0;
}

  

时间: 2024-08-02 03:27:52

hdu1702 list or stack+queue的相关文章

C#学习笔记之二(stack, queue, string, HashTable,StringBui

Queue: Enqueue() Dequeue() Peek() //only get first element, not delete it Stack: Count() Clear() Peek() Pop() Push() CopyTo(array, offset) //copy to array Dictionary/Hashtable: Keys //colleation of Keys, Values //colleation of value Count() Clear() C

STL之stack,queue,优先队列

 1.stack,size(),empty(),pop()函数 #include<stack> #include <iostream>   using namespace std;   //通过push()方法入栈 //通过size()方法求栈中元素的个数 //通过empty()方法判断栈是否为空 //通过pop()求栈中最顶端的元素 void main() {     int num;     cin >> num;     stack<int> my

C++ STL容器stack和queue详解_C 语言

stack是一个比较简单的容器,它的使用也很简单,stack是LIFO容器,就是后进先出,最后添加进去的元素,第一个取出来 stack初始化 std::stack<int> first; std::stack<int> second(first); std::stack<int, std;:vector<int>> third; //使用vector初始化stack ### stack常用方法### empty();//判断是否为空 push(Elem e)

Java容器使用总结

版权声明:本文为博主原创或整理自网络,欢迎转载,转载请注明出处. Collection  ├List  │├LinkedList  │├ArrayList  │└Vector  │└Stack  ├Queue │├Deque │└LinkedList └Set    ├SortedSet    ├TreeSet   └HashSet Map  ├Hashtable  ├HashMap  └WeakHashMap Collection接口  Collection是最基本的集合接口,一个Collec

教你如何迅速秒杀掉:99%的海量数据处理面试题

作者:July 出处:结构之法算法之道blog   前言    一般而言,标题含有"秒杀","99%","史上最全/最强"等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结.     毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题.最后,

Java面试题总汇

6位短信验证码(不以0开头) 12345678910111213 String random = String.valueOf(Math.random()); boolean start = false; StringBuilder sb = new StringBuilder(); for (int i = 2,k = 0; k < 6 && i < random.length(); i++) { if (!start && random.charAt(i)

Creating dynamic data structures(from flws)

Creating dynamic data structures.In the first part of this series - Creating custom collections - I showed how to wrap a .NET collection class to create a new enumerable collection with a custom name. In that article I used an ArrayList as my underly

[C++ 面试基础知识总结] 顺序容器

[C++ 面试基础知识总结] 顺序容器 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 顺序容器 目录 顺序容器与选择 迭代器 容器的初始化和赋值 顺序容器操作 添加元素 访问元素 删除元素 改变容器大小 迭代器失效 vector对象的增长 string 操作 改变string 搜索string 数值转换 容器适配器 栈stack 队列queue 顺序容器与选择 顺序容器类型: vector 可变大小数组 deque 双端队列 list 双向链表 forward_list 单向

海量数据处理技巧

目录(?)[-]       教你如何迅速秒杀掉99的海量数据处理面试题 前言 何谓海量数据处理 第一部分从setmap谈到hashtablehash_maphash_set 第二部分处理海量数据问题之六把密匙 密匙一分而治之Hash映射 Hash_map统计 堆快速归并排序 密匙二多层划分 密匙三Bloom filterBitmap Bloom filter Bitmap 密匙四Trie树数据库倒排索引 密匙五外排序 密匙六分布式处理之Mapreduce 其它模式方法论结合操作系统知识 [-]