时间片轮转算法C版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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!"< if(i>qGetNumber()-1) { cout<<"ERROR! there is no "< 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< }//endfor cout< return OK; } //======================qShowAll========================= /*int Queue_c::qShowAll() { int i; for(i=0;i cout< return OK; }*/ /* int Queue_c::qXChange(int i) { ElemType t; if(1==qGetNumber())return OK; if(qEmpty()){cout<<"ERROR!"< if(i>qGetNumber()-1) { cout<<"ERROR! there is no "< 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 // { // temp=buf.qGetElem(i); // if(temp // }//endfor // if(m<=0||m>buf.qGetFrontElem())return ERROR;//如果是负数的话在这里就被拦下来了,所以,传出出去的m不可能是负数 //return m;