劍指Offer 程式設計題 用兩個棧來實現佇列

2021-10-23 07:41:30 字數 796 閱讀 3073

用兩個棧來實現乙個佇列,完成佇列的pushpop操作。 佇列中的元素為int型別。

佇列是先進先出,棧是先進後出,如何用兩個棧來實現這種先進先出呢?

其實很簡單,我們假設用stack1專門來裝元素,那麼直接stack1.pop肯定是不行的,這個時候stack2就要發揮作用了。

我們的規則是:只要stack2中有元素就pop,如果stack2為空,則將stack1中所有元素倒進satck2中,就是說,新元素只進stack1,元素出來只從stack2出來。

這樣子,就能保證每次從stack2pop出來的元素就是最老的元素了。

}測試**

public class stacktest 

}).start();

for (int i = 0; i < 10; i++)

}}

劍指Offer刷題 用兩個棧實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。本題要求用兩個棧實現佇列的入隊和出隊操作。入隊 由於棧是後進先出,佇列是先進先出。所以當兩個棧堆疊起來時,就能實現先進先出。只需要把資料放入到stack1中,然後再順序輸出放入到stack2中,但由於需要考慮到連續進入...

劍指offer 用兩個棧實現佇列

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...

用兩個棧實現佇列《劍指offer

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...