用兩個棧來實現乙個佇列,完成佇列的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型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...