棧的運用(1)

2022-01-17 08:30:07 字數 733 閱讀 4468

問題描述:

火車排程站的入口處有n

節硬席或軟席車廂(以h和

s表示)等待排程,試編寫演算法,輸出對這

n節車廂進行排程的操作(即入棧或出棧操作)序列,使得所有軟席車廂都被調整到硬席車廂之前。

問題分析:

此題主要解決的問題是,不管是入棧還是出棧,軟席車廂要在硬席車廂之前

一開始能想到的效果就是一頭一尾都是軟席,這樣入棧和出棧都使得軟席在硬席之前咯

沒看清題目啊,題目是說要把所有軟席車廂都被調整到硬席車廂之前呢?親啊。

int main()

//這段**時有問題的

c語言知道該怎麼寫了,

得承認寫得少,但是來得及的,你看資料結構可以給你補很多知識。

scanf(「%s

」,buffer);//自己試著多寫寫就是熟悉了。

用c++

是直接這樣寫的

cin>>buffer;

while(buffer[i])

else

push(s,buffer[i]);

i++;

}while(buffer[j])//說實話,我對陣列的使用還不是很清楚,宣告了乙個字元陣列,用得有些彆扭,要多程式設計。

printf(「%s

」,buffer);//各種語言的使用並不可怕,關鍵是程式設計的思想呢?可能這語句有問題,在

c++中是這樣表示的,

cout<

return 0;

}

單調棧的運用

單調棧本質上只是單調遞增或遞減的棧,有點類似於單調佇列,但不同之處在於插入乙個元素時,會彈出棧中 所有不符合單調性的元素 來個例子吧!當乙個單增的棧stack 向其中壓入元素6時,stack 向其中壓入元素2時,stack彈出2,3,4,且stack 向其中壓入0時,stack彈出1,2,3,4,s...

單調棧的運用

題目大意 有一群列隊,面朝右站立的牛,輸入每頭牛的身高,如果視線前方有一頭高於自己的牛,則看不到它之後的牛 求出所有牛能看到頭頂的個數。n方演算法超時,故考慮優化,首先能想到的是,在計算左邊的牛能看到多少牛時,可以利用右邊的結果。棧優化的思路即是,從右向左遍歷牛的身高,同時對棧進行操作 棧中存放牛的...

單調棧的運用

單調棧可以用來是實現在 離線的情況下,o n 的處理出陣列中所有點比某個點小或大最近的距離是多少 具體做法是用棧來維護一邊的點的下表,由於假如ihj 那麼h i 便永無出頭之日 可以把他刪了,而在棧裡能找到的直到第一次出現的小與hi的h j 就一定是最近的,每個點出棧一次,進棧一次,所以時間複雜度是...