1. 程式人生 > >單調棧 、 隊列學習

單調棧 、 隊列學習

lan https get 滿足 detail 推薦 隊列 出棧 targe

推薦博客 : https://blog.csdn.net/zuzhiang/article/details/78134247

單調棧、隊列只需滿足兩個條件即可,序列是單調的,並且符合棧和隊列的特性。

實現:

例如實現一個單調遞增的棧,比如現在有一組數10,3,7,4,12。從左到右依次入棧,則如果棧為空或入棧元素值小於棧頂元素值,則入棧;否則,如果入棧則會破壞棧的單調性,則需要把比入棧元素小的元素全部出棧。單調遞減的棧反之。

10入棧時,棧為空,直接入棧,棧內元素為10。

3入棧時,棧頂元素10比3大,則入棧,棧內元素為10,3。

7入棧時,棧頂元素3比7小,則棧頂元素出棧,此時棧頂元素為10,比7大,則7入棧,棧內元素為10,7。

4入棧時,棧頂元素7比4大,則入棧,棧內元素為10,7,4。

12入棧時,棧頂元素4比12小,4出棧,此時棧頂元素為7,仍比12小,棧頂元素7繼續出棧,此時棧頂元素為10,仍比12小,10出棧,此時棧為空,12入棧,棧內元素為12。

單調棧 、 隊列學習