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

admin2012-06-21  49

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

选项

答案假设q数组的最大下标为10,恰好是每次渡载的最大量。假设客车的队列是q1,货车的队列是q2。算法如下: void Manager(Squeue*q,Squeue*q1,Squeue*q2) { elemtype x; int j=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->dataEq2->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; } }

解析
转载请注明原文地址:https://jikaoti.com/ti/JtajFFFM
0

相关试题推荐
最新回复(0)