I Can Guess the Data Structure!(水题,不过锻炼了stack,queue,priority的用法)

来源:互联网 发布:premiere cs6 mac下载 编辑:程序博客网 时间:2024/05/17 01:22

题意:就是给出一系列的操作和返回值,判断是队列还是优先队列还是栈;

#include <stdio.h>#include <queue>#include <stack> using namespace std;int main(){int n;while (~scanf("%d",&n)){queue<int> que;priority_queue<int> pque;stack<int> tack;int k1=1,k2=1,k3=1;while (n--){int a,b;scanf("%d%d",&a,&b);if (a==1){que.push(b);pque.push(b);tack.push(b);}else {if (!que.empty() && k1){if (que.front()!=b)k1=0;que.pop(); }else k1=0;if (!pque.empty() && k2){if (pque.top()!=b)k2=0;pque.pop(); }else k2=0;if (!tack.empty() && k3){if (tack.top()!=b)k3=0;tack.pop(); }else k3=0;}}if ((k1+k2+k3)>1) printf("not sure\n");else if ((k1+k2+k3)==0) printf("impossible\n");else if (k1==1) printf("queue\n");else if (k2==1) printf("priority queue\n");else printf("stack\n");} return 0;} 

 

原创粉丝点击