#include#include#includeint n,m,j;
int a[1000],stack[1000],result[1000];
int check()
else
}}while(i<2*n&&flag);
if(j1==0&&flag)
puts("");
}}int main()
}while(a[1]!=-1);
}printf("%d\n",m);
}return 0;
}
演算法思想:設初始陣列a,a[i]=0表示出棧操作,a[i]=1表示入棧操作,每列火車用陣列a的
兩個元素表示該列火車出入棧情況,即n列火車的出站序列由陣列a的各元素的0、1組合確定;
程式給出2n個元素的所有0、1組合,對每一種組合用棧的先進後出原則進行測試,若符合,則
輸出該種組合所對應的火車出站序列。
火車進站出站問題
火車編號為 1 9,且不重複。如 編號分別為 1 2 3 4 5 的5個火車順序進站,那麼進站序列為 12345 全部進站後再順序出站,則出站序列為 54321 如果先進1,2,然後2出站,然後1出站,然後再3進站 出站,4進站 出站,5進站 出站,那麼出站序列就為21345.問題分析 棧具有先進後...
火車進出站問題 棧
編號為1,2,n的n輛火車依次進站,給定乙個n的排 列,判斷是否是合法的出站順序?思路 先把出站順序存入,用棧模擬進站的火車,按照出站的順序,依次pop出來,判斷 最後的出站數量能否達到n。include include include using namespace std const int m...
火車進出站序列問題簡述
問題描述 假設有乙個站台,只有乙個進出口,有一列火車,車廂標號從頭往後依次是1,2,3,4。問火車從頭進入站台,有多少種出站台的序列。解題思路 這裡的站台可以模擬於資料結構中的棧。棧具有先進後出 後進先出的特點,因此,任何乙個排程結果應該是 全排列中的乙個元素。由於進棧的順序是由小到大的,所以出棧序...