利用佇列實現車廂編組

2021-10-11 13:22:49 字數 1322 閱讀 4169

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

#include

#include

#define ok 1

#define error 0

#define overflow -2

#define true 1

#define false 0

//typedef 為重定義,將乙個char型別資料重新定義為elemtype,在以後的程式**現的elemtype 就可以理解為char型別。

typedef

char elemtype;

typedef

int status;

//----- 佇列的順序儲存表示 -----

#define maxqsize 30

// 儲存空間的初始分配量

typedef

struct

sqqueue;

//別名

// 構造乙個空佇列 q

status initqueue

(sqqueue &q)

//判佇列是否為空

status queueempty (sqqueue q)

//入隊函式

status enqueue

(sqqueue &q, elemtype e)

//出隊函式

status dequeue

(sqqueue &q, elemtype &e)

//輸出迴圈佇列函式

void

outqueue

(sqqueue q)

else

printf

("\n");

}}void

arrange

(sqqueue a, sqqueue &b, sqqueue &c)

}//主函式

intmain()

outqueue

(a);

arrange

(a, b, c)

;printf

("硬座車組:");

outqueue

(b);

printf

("軟臥車組:");

outqueue

(c);

return0;

}

利用棧實現車廂重排

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

用佇列實現列車車廂重排

之前寫了用棧實現的列車車廂重排問題,現在來實現用佇列的列車車廂重排問題,用佇列要比用棧簡單。void outputfromholdingtrack bool putinholdingtrack int c else if besttrack 0 besttrack i if besttrack 0 ...

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

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