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

2021-10-18 16:28:54 字數 630 閱讀 2900

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

本題要求用兩個棧實現佇列的入隊和出隊操作。

入隊:由於棧是後進先出,佇列是先進先出。所以當兩個棧堆疊起來時,就能實現先進先出。只需要把資料放入到stack1中,然後再順序輸出放入到stack2中,但由於需要考慮到連續進入的情況,所以在放入到stack2中之前,需要把stack2中所有的元素都放回到stack1中。

出隊:同理,考慮到連續出隊的情況,在拿出乙個元素後,需要再把stack1中的元素再放回到stack2中。

**如下:

class

solution

stack1.

push

(node)

;while

(stack1.

empty()

!=true)}

intpop()

while

(!stack1.

empty()

)return temp;

}private

: stack<

int> stack1;

stack<

int> stack2;

};

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

示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 1 values 10000思路 題目的要求是,用兩個 先進後出 的棧實現乙個 先進先出 佇列,並且只需要考慮插入和刪除操作。我們先通過乙個例子分析一下佇列的插入和刪除操作。...

劍指offer 刷題思路(兩個棧實現佇列)

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。演算法思想 棧的特性是先進後出,佇列的特性是先進先出。佇列的push 可以用乙個棧的push進行操作,佇列的pop 要pop 棧最底下的元素。可以將除最底下的元素push 到另外的乙個棧,取出棧低元素之後再進...

劍指offer 用兩個棧實現佇列

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