火車uva514 棧的邏輯

2021-09-11 17:40:35 字數 495 閱讀 6801

#include#include#includeusing namespace std;

//這道題雖然考棧但是在邏輯方面可是巧妙

int main()

int a=1, b=1,flag=1;//a用來記錄進棧的順序,b用來記錄b的下標

while (b<=n)//結束條件為b滿了,也就是正常位置配對了。

//這裡很巧妙,因為一般人會想到用a來寫,但是這裡用的是a//如果他配對,則不用進棧直接到b就對了,然後各自加一

else if (!s.empty() && s.top() == b[b]) //如果不想等,那麼就需要取判斷在他入棧之前是否棧頂和b配對,並且保證棧為空

else if (a <= n) //如果a這個數小於n,就意味著a還沒有處理完,那麼久入棧

else //異常退出

} if (flag)

else

}return 0;

}

UVa514鐵軌 火車進站問題

具體題目如下 先列舉我用c語言寫的 include define maxn 1000 10 int n,target maxn n用來儲存火車的數量,target用來儲存火車出站順序 typedef structstack int empty stack s 判斷棧是否為空 int top stac...

UVa 514 鐵軌 棧的學習

題目 鐵軌 題目描述 某城市有乙個火車站,有n節車廂從a方向駛入車站,按進站的順序編號為1 n.你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛入車站。例如,出棧順序 5 4 1 2 3 是不可能的,但是 5 4 3 2 1 是可能的。題目分析 為了重組車廂,借助中轉站,對於每個車廂...

UVa 514 鐵軌 棧的學習

題目 鐵軌 題目描述 某城市有乙個火車站,有n節車廂從a方向駛入車站,按進站的順序編號為1 n.你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛入車站。例如,出棧順序 5 4 1 2 3 是不可能的,但是 5 4 3 2 1 是可能的。題目分析 為了重組車廂,借助中轉站,對於每個車廂...