用兩個棧來實現乙個佇列,完成佇列的push
和pop
操作。 佇列中的元素為int型別。
佇列是先進先出,棧是先進後出,如何用兩個棧來實現這種先進先出呢?
其實很簡單,我們假設用stack1
專門來裝元素,那麼直接stack1.pop
肯定是不行的,這個時候stack2
就要發揮作用了。
我們的規則是:只要stack2
中有元素就pop
,如果stack2
為空,則將stack1
中所有元素倒進satck2
中,就是說,新元素只進stack1
,元素出來只從stack2
出來。
這樣子,就能保證每次從stack2
中pop
出來的元素就是最老的元素了。
}測試**
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為入隊元素 ...