[火车车厢重排问题]编号为1至N的N个货运车厢需要编组,在进入编组区前,这些车厢是随机排列的。在编组区里,需要将运货的各节车厢从大到小排好。驶离编组区后直接挂接火车车头,编组区现有3条空轨道可供使用。请完善下列代码: bool realign(queue<int>track)//track中存放进编组区前的各车厢编号。返回值true表示可以完成重组;false表示不可以完成。 int x;queue<[填空1]> track1, track2,track3; while(iacsempsyo)( track.pop(0; if (track1.empty)|×>[填空3])track1.push(x); else if (track2.empty0||x>[填空4])track2.push(x); else if (track3.empty0x>[填空5])track3.push(x); else return [填空6]; return [填空7]; )
时间: 2023-05-16 11:06:41 浏览: 179
火车车厢重排问题
bool realign(queue<int>track){
int cur = 1;
queue<int> track1, track2, track3;
while(!track.empty()){
int x = track.front();
track.pop();
if(x == cur){
cur++;
}else if(!track1.empty() && x < track1.back()){
return false;
}else if(!track2.empty() && x < track2.back()){
return false;
}else if(!track3.empty() && x < track3.back()){
return false;
}else{
if(track1.empty() || x > track1.back()){
track1.push(x);
}else if(track2.empty() || x > track2.back()){
track2.push(x);
}else{
track3.push(x);
}
}
}
return true;
}
阅读全文