当前位置:文档之家› 时间片轮转算法C版

时间片轮转算法C版

int Queue_c::qEnQueue(ElemType e)
{
if(qFull())return ERROR;
Q[rear]=e;
rear=(rear+1)%QueueNum;
return OK;
}
//=================qDeQueue=============================== ElemType Queue_c::qDeQueue()
{
ElemType e;
if(qEmpty())return ERROR;
e=Q[front];
Q[front]=QueuePre;
front=(front+1)%QueueNum;
return e;
}
//===================qGetNumber============================= int Queue_c::qGetNumber()
{int i;
i=((rear-front+QueueNum)%QueueNum);
return i;
}
//==================qGetElem============================== ElemType Queue_c::qGetElem(int i)
{
if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}
if(i>qGetNumber()-1)
{
cout<<"ERROR! there is no "<<i<<",or no "<<i<<" in Queu e now"<<endl;
return ERROR;
}
return Q[(front+i)%QueueNum];
}
//======================qShowQueue========================== int Queue_c::qShowQueue()
{int i;
if(qEmpty())return ERROR;
for(i=front;i!=rear%QueueNum;i=(i+1)%QueueNum)
{
cout<<Q[i]<<" ";
}//endfor
cout<<endl;
return OK;
}
//======================qShowAll========================= /*int Queue_c::qShowAll()
{
int i;
for(i=0;i<QueueNum;i++)cout<<Q[i]<<" ";
cout<<endl;
return OK;
}*/
/* int Queue_c::qXChange(int i)
{
ElemType t;
if(1==qGetNumber())return OK;
if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}
if(i>qGetNumber()-1)
{
cout<<"ERROR! there is no "<<i<<",or no "<<i<<" in Queu e now"<<endl;
return ERROR;
}//endlf
t=Q[front];
Q[front]=Q[(i+front)%QueueNum];
Q[(i+front)%QueueNum]=t;
return OK;
}
*/
//========================================================
/************************End Of Class Queue_c***************** *****************/
/************************Class Work_c*************************** ***************/
//======================wCPU========================= int Work_c::wCPU()
{ int t;
ElemType temp;
//if(wScan(t))buf.qXChange(t);
buf.qDec();
temp=buf.qDeQueue();
if(temp>0)buf.qEnQueue(temp);
return OK;
}
//======================wScan=========================
//ElemType Work_c::wScan(int &t)
//{
//int i,m=12;
//ElemType temp;
//for(i=0;i<buf.qGetNumber();i++)
// {
// temp=buf.qGetElem(i);
// if(temp<m){m=temp;t=i;}//endif
// }//endfor
// if(m<=0||m>buf.qGetFrontElem())return ERROR;//如果是负数的话在这里就被拦下来了,所以,传出出去的m不可能是负数
//return m;
//}
//======================wMakeP=========================
int Work_c::wMakeP()
{
int t;
t=random(200)%2;
if(t){buf.qEnQueue(random(10)+1);return OK;}
return ERROR;
}
//========================================================
/**************************End of Class Work_c**************** *****************/。

相关主题