数据结构实验之队列一:排队买饭

    xiaoxiao2025-01-06  9

    这道题的主要思想就是:建立两个队列,一个队列用来操作,另一个用来暂时存储第一个队列的元素。

    代码如下:

    #include <bits/stdc++.h> using namespace std; int main(){     int n,m,d,k,i;     char s[18];     queue<int> q1;//第一个队列,用来存储输入的元素     queue<int> q2;//第二个队列,用来暂存第一个队列里的元素     cin>>m;     while(m--){         cin>>d;         q1.push(d);//把输入的数据存入队列1中     }     cin>>n;     while(n--){         cin>>s;         if(strcmp(s,"ASK")==0){             cin>>k;             for(i=1;i<=k;i++){                 if(i==k){                     cout<<q1.front()<<endl;//找到对应位置的元素,输出即可;                     while(!q1.empty()){//将q1中剩余元素暂存入q2中                         q2.push(q1.front());                         q1.pop();                     }                     while(!q2.empty()){//把q2中的所有元素放入q1中                         q1.push(q2.front());                         q2.pop();                     }                 }                 else{                     q2.push(q1.front());//先将q1中的部分元素放入 q2中                     q1.pop();                 }             }         }         else if(strcmp(s,"LEAVE")==0){             cin>>k;             for(i=1;i<=k;i++){                 if(i==k){                     q1.pop();//找到指定位置的元素,将其出队;                     while(!q1.empty()){                         q2.push(q1.front());                         q1.pop();                     }                     while(!q2.empty()){                         q1.push(q2.front());                         q2.pop();                     }                 }                 else{                     q2.push(q1.front());                     q1.pop();                 }             }         }         else if(strcmp(s,"FINISH")==0){             cin>>k;             while(k--){                 q1.pop();             }         }         else if(strcmp(s,"LENGTH")==0){             cout<<q1.size()<<endl;         }         else if(strcmp(s,"JOIN")==0){             cin>>k;             q1.push(k);         }     }     return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1295215.html
    最新回复(0)