牛客《劍指Offer》 用兩個棧實現佇列

2021-08-03 14:08:01 字數 448 閱讀 2945

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

棧的資料是後進先出的,所以利用兩個棧的配合可以實現佇列先進先出的效果。

所有存入的資料,均壓入棧stack1。

要取出資料時,開始stack2為空,將所有stack1中的資料取出,以此壓入stack2 中,這些資料再從stack2中取出,此

class solution

int pop()

else

return pop();}}

private:

stackstack1;

stackstack2;

};

時便實現了先進先出。對於stack2為空時,取資料直接從stack2開始,直至stack2為空。

牛客網《劍指Offer》(5)用兩個棧實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。此題關鍵在於理解這兩種資料結構的特點 棧 先進後出。佇列 先進先出。實現 push 直接入棧1 實現 pop 分幾步執行 1 將棧1元素複製到棧2,實現反轉。2 棧2的棧頂元素出棧,該元素就是輸入的第乙個元素。3 將棧...

劍指offer 用兩個棧實現佇列

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

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

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