//功能实现子函数
Status OrderInser(EventList &ev, QCuEvent en) { EventList entemp,qtemp;
entemp = (EventList) malloc(sizeof(QCuEvent)); entemp->OccurTime = en.OccurTime; entemp->NType = en.NType; entemp->next = NULL; if (!ev->next) { ev->next = entemp; return OK;
}
qtemp = ev;
while(qtemp->next&&qtemp->next->OccurTime < en.OccurTime) { qtemp = qtemp->next; }
entemp->next = qtemp->next; qtemp->next = entemp; return OK;
}
int QLength(QCustomerp qn) {
16
QEptr qtemp; int i=0;
qtemp = qn.front->next; while(qtemp) { qtemp = qtemp->next; i++;
} return i;
}
int MinCuQueue(QCupp q) { int i,min;
for (i=1,min=1;i<=windowsnum;i++) { min = QLength(q[min])<=QLength(q[i]) ? min:i;
} return min;
}
Status DelFirstEvent(EventList &ev) { EventList p;
p = ev->next; 17
ev->next = p->next; free(p); return OK;
}
Status InitCuQueue(QCustomerp &qn) { qn.front = (QEptr) malloc(sizeof(QCuElem)); qn.front->next = NULL; qn.rear = qn.front; return OK;
}
Status EnCuQueue(QCustomerp &qn,QEptr Q) { qn.rear->next = Q; qn.rear = Q; return OK;
}
Status DeCuQueue(QCustomerp &qn,QCuElem &Q) { QEptr qtemp;
qtemp = qn.front->next;
Q.ArrivalTime = qtemp->ArrivalTime; 18
Q.Duration = qtemp->Duration; qn.front->next = qtemp->next; if(qn.rear == qtemp) qn.rear = qn.front; free(qtemp); return OK;
}
Status GetQHead(QCustomerp qn,QCuElem &Q) { Q.ArrivalTime = qn.front->next->ArrivalTime; Q.Duration = qn.front->next->Duration; return OK;
}
Status DestoryQueue(QCustomerp qn) { QEptr p;
while(qn.front->next) { p = qn.front->next; qn.front->next = p->next; free(p);
}
qn.front->next =NULL;
qn.rear = qn.front;
19
return OK;
}
void Ptint_QStatus(QCustomerp QCu[]) { int l;
for(int i=1;i<=windowsnum;i++) { l = QLength(QCu[i]); printf(\队列%d:长%d:\ for (int n=1;n<=l;n++) { printf(\
}
printf(\
}
}
void test(char str[]) { printf(\}
20