uva11995 I Can Guess the Data Structure!(基本数据结构)

来源:互联网 发布:ubuntu openssh国内源 编辑:程序博客网 时间:2024/04/29 19:00

题意:给定一系列操作,让你判断是否是栈,队列,优先队列

思路:直接用STL的模拟一波就好了


#include<iostream>#include<cstdio>#include<stack>#include<queue>#include<string>using namespace std;int main(){int n;while(scanf("%d",&n)!=EOF){         queue<int>q; stack<int>s; priority_queue<int>qq; int isqueue = 1; int isstack = 1; int ispriqueue = 1; for(int i = 1;i<=n;i++) { int op,v; scanf("%d%d",&op,&v); if(op==1) { q.push(v); s.push(v); qq.push(v); } else { if(!q.empty()) { int vv = q.front();     if(!q.empty())        q.pop();     if(vv!=v)    isqueue = 0; } else isqueue = 0; if(!s.empty()) { int vv = s.top(); s.pop(); if (vv!=v) isstack = 0; } else isstack = 0; if(!qq.empty()) { int vv = qq.top(); qq.pop(); if(vv!=v) ispriqueue = 0; } else ispriqueue = 0; } } if(isstack&&isqueue&&ispriqueue) { printf("not sure\n"); } else if (!isstack && !isqueue&&!ispriqueue) { printf("impossible\n"); } else if (isstack && !isqueue && !ispriqueue) printf("stack\n"); else if (isqueue && !isstack && !ispriqueue) printf("queue\n"); else if (ispriqueue && !isstack && !isqueue) printf("priority queue\n"); else printf("not sure\n");}}





0 0
原创粉丝点击