用佇列實現列車車廂重排

2021-08-21 17:18:59 字數 525 閱讀 3288

之前寫了用棧實現的列車車廂重排問題,現在來實現用佇列的列車車廂重排問題,用佇列要比用棧簡單。

void outputfromholdingtrack() }}

bool putinholdingtrack(int c)

}else

if(besttrack==0)

besttrack=i;

if(besttrack==0)

return false;

//把車廂c移到軌道besttrack

track[besttrack].push(c);

cout<<"move car"

<"from input track"

<<"to holding track"

return true;

}

當一節車廂c進入緩衝軌道時,一句如下的 原則來選擇緩衝軌道:緩衝軌道上已有的車廂其編號均小於c,如果有多個緩衝軌道都滿足這一條件,則選擇左端車廂編號最大的緩衝軌道;否則選擇乙個空的緩衝軌道(如果有的話)

利用棧實現車廂重排

入軌道上的車廂為無序的,出軌道車廂為從右向左遞增排序,使的在對應經過車站時可以直接解除安裝下尾部車廂而不用調整其他車廂。緩衝軌道上存入軌道上進來但還不能進入出軌道的車廂,每乙個緩衝軌道中從頂部到底部資料遞增,如果乙個資料進入緩衝軌道,如果所有緩衝軌道頂部的資料都大於這個資料,那麼其進入這些資料中最小...

利用佇列實現車廂編組

利用佇列實現車廂編組問題。假設佇列元素是char型別,h 表示硬座,s 表示軟臥,佇列a表示一組硬座和臥鋪混編的車廂。要求把佇列a中的硬座車廂移動到佇列b,佇列a中的臥鋪車廂移動到佇列c,同時保留原有硬座車廂之間和軟臥車廂之間的先後順序不變。如hshhshsshh,分別輸出軟臥車組 ssss和硬座車...

車廂排程問題 佇列和棧的實現

根據佇列和棧的性質 佇列找尾部最大的車廂號 棧找尾部最小的車廂號 棧 佇列 陣列可用stl或者自己實現 pragma once include vector.h include queue.h include stack.h include const char inputvectorfilenam...