问题 问答题

某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和汽车类,上渡船有如下规定:同类车先到先上船,客车先于货车上船,且每上4辆客车,才允许上一辆货车,若等待客不足4辆,则以货车代替,若无货车等待允许客车都上船。写一算法模拟渡口管理。

答案

参考答案:

解析:假设q数组的最大下标为10,恰好是每次渡载的最大量。假设客车的队列是q1,货车的队列是q2。算法如下: void Manager(Sqqueue* q,Squeue * q1,Squeue * q2) { elemtype x; intj=0,i=0; while(j<10) { if(!empty(q1)&&i<4) { x=q1->data[q1->front]; q1->front=q1->front+1; q->rear=q->rear+1; q->data[q->rear]=x: i++; j++; } if((i==4) &&!empty(q2)) { x=q2->data[q2->front]; q2->front=q2->front+1; q->rear=q->rear+1; q->data[q->rear]=x: j++; i=0: } if(empty(q2)&&!empty(q1)) i=0: } }

问答题 简答题
问答题 简答题