【問題描述】
某城市有一個火車站,鐵軌鋪設如圖所示。有n節車廂從A方向駛入車站,按進站順序編號為1~n。你的任務是讓它們按照某種特定的順序進入B方向的鐵軌并駛出車站。為了重組車廂,你可以借助中轉站C。這是一個可以停放任意多節車廂的車站,但由于末端封頂,駛入C的車廂必須按照相反的順序駛出。對于每個車廂,一旦從A移入C,就不能再回到A了;一旦從C移入B,就不能回到C了。換句話說,在任意時刻,只有兩種選擇:A→C和C→B。
這個問題和之前數據結構實驗的火車入軌類似,而且較之簡化。自己嘗試寫了下,和書上參考答案的代碼量仍有較大差距。代碼如下:
}
書中參考代碼如下:
同樣,可以用STL來實現,只需對書中參考答案作微小改動,代碼如下:
【總結】
自己寫的代碼仍有優化的空間。學習參考答案的清晰邏輯的表達。學習STL棧的使用。
聯系數據結構實驗中關于火車入軌的提升,對緩沖軌的限制,應該增加一個判斷即可。
不知坑有多深的C++初學者 目前停留在“水題”階段 走一步看一步,摸著石頭過河 向大??待R
新聞熱點
疑難解答
圖片精選