1. 程式人生 > 其它 >作業系統FIFO演算法

作業系統FIFO演算法

FIFO演算法

#include <bits/stdc++.h>
#include <queue>
using namespace std;
queue<int >op;
int n;
int cnt;
bool get(queue<int >p,int x)
{
    while (!p.empty())
    {
        int l = p.front();
        p.pop();
        if (l==x) return true;
    }
     return false;
}
void out(queue<int >p)
{
    cout<<"-----------------------"<<endl;
    cout<<"駐留 ";
    while (!p.empty())
    {
        int l = p.front();
        p.pop();
        cout<<l<<' ';
    }
    cout<<endl;
    cout<<"-----------------------"<<endl;
}
 int main()
 {
     cin>>n;
     cin>>cnt;/// l zhuliuji
     int sum = 0;
     for (int i=0;i<n;++i)
     {
         int x;
         cin>>x;
         out(op);
         if (get(op,x)==false)
         {
            ++sum;
             if (op.size()<cnt)
             {
                 op.push(x);
             }
             else
             {
                 op.pop();
                 op.push(x);
             }
         }
          out(op);
     }
     cout<<sum<<endl;
 }