用兩個棧來實現(xiàn)隊列

題目要求:用兩個棧來實現(xiàn)一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型

眾所周知,棧使一種后進先出的數(shù)據(jù)結(jié)構(gòu),而隊列是一種先進先出的數(shù)據(jù)結(jié)構(gòu),剛好題目要求用兩個棧來實現(xiàn),我們來想想,當(dāng)push的時候,把記錄全部push到stack1中,當(dāng)要pop的時候,我們先把stack1中的所有記錄pop出來,然后再push到stack2中,這樣stack2中最上面的那條記錄不就是之前最先進入棧的么,然后把它pop出來就萬事大吉嘛。當(dāng)然pop出來之后不要忘記把剩下的數(shù)據(jù)重新push回到stack1中。

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
        stack1.push(node);
    }
    
    public int pop() {
        while(!(stack1.empty())){
            stack2.push(stack1.pop());
        }
        int value = stack2.pop();
        while(!(stack2.empty())){
            stack1.push(stack2.pop());
        }
        return value;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評論 25 709
  • 一、棧 1.1 棧的實現(xiàn) 棧(Stack)是限制僅在表的一端進行插入和刪除運算的線性表。java沒有棧這樣的數(shù)據(jù)結(jié)...
    yjaal閱讀 1,519評論 0 1
  • 棧 棧的英文單詞是Stack,它代表一種特殊的線性表,這種線性表只能在固定一端(通常認(rèn)為是線性表的尾端)進行插入,...
    Jack921閱讀 1,626評論 0 5
  • 1.棧 1.1.棧的定義 棧(stack)是限定僅在表尾(棧頂 top)進行插入和刪除操作的后進先出的線性表。 p...
    JonyFang閱讀 1,590評論 0 21
  • 自古多情傷離別,去年此時,我在寫一個關(guān)于離別的劇本,今年此刻,我試著體驗多重離別中的人、和感受。想到多情,是因為雖...
    月冉耳閱讀 860評論 0 1

友情鏈接更多精彩內(nèi)容