UVA - 11995 I Can Guess the Data Structure!

2014-11-24 09:08:34 · 作者: · 浏览: 0

题意:求满足操作的数据结构

思路:模拟

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         using namespace std; int n,o,e,cs,s,q,pq; int main(){ while (scanf("%d",&n) != EOF){ stack
        
          st; queue
         
           qu; priority_queue
          
            pqu; s = q = pq = 1; while (n--){ scanf("%d %d",&o,&e); if (o == 1){ st.push(e); qu.push(e); pqu.push(e); } else if (o == 2){ if (!st.empty()){ if (st.top() != e) s = 0; st.pop(); } else s = 0; if (!qu.empty()){ if (qu.front() != e) q = 0; qu.pop(); } else q = 0; if (!pqu.empty()){ if (pqu.top() != e) pq = 0; pqu.pop(); } else pq = 0; } } if (s && !q && !pq) printf("stack\n"); else if (!s && q && !pq) printf("queue\n"); else if (!s && !q && pq) printf("priority queue\n"); else if (!s && !q && !pq) printf("impossible\n"); else printf("not sure\n"); } return 0; }