uva 11995 I Can Guess the Data Structure!(数据结构:基础)

来源:互联网 发布:淘宝视频制作 编辑:程序博客网 时间:2024/05/16 05:26

很水的一道题啊,考察对STL栈、队列、优先队列的基础运用

代码如下:

#include <cstdio>#include <stack>#include <queue>#include <iostream>#include <algorithm>using namespace std;stack<int> st;queue<int> qu;priority_queue<int, vector<int>, less<int> > pq;int st_num, qu_num, pq_num;void init() {    while(!st.empty())        st.pop();    st_num = 0;    while(!qu.empty())        qu.pop();    qu_num = 0;    while(!pq.empty())        pq.pop();    pq_num = 0;}int main(void) {    int n, i, c, d, cnt;    while(scanf("%d", &n) != EOF) {        init();        cnt = 0;        for(i=0; i<n; ++i) {            scanf("%d%d", &c, &d);            if(c == 1) {                st.push(d);                qu.push(d);                pq.push(d);            } else {                cnt++;                if(!st.empty() && st.top() == d) {                    st_num++;                    st.pop();                }                if(!qu.empty() && qu.front()==d) {                    qu_num++;                    qu.pop();                }                if(!pq.empty() && pq.top() == d) {                    pq_num++;                    pq.pop();                }            }        }        //cout << st_num << endl << qu_num << endl << pq_num << endl;        if(st_num==cnt && qu_num!=cnt && pq_num!=cnt) {            cout << "stack" << endl;        } else if(st_num!=cnt && qu_num==cnt && pq_num!=cnt) {            cout << "queue" << endl;        } else if(st_num!=cnt && qu_num!=cnt && pq_num==cnt) {            cout << "priority queue" << endl;        } else if(st_num!=cnt && qu_num!=cnt && pq_num!=cnt) {            cout << "impossible" << endl;        } else {            cout << "not sure" << endl;        }    }    return 0;}


0 0
原创粉丝点击