劍指offer 用兩個棧實現佇列

2021-09-26 23:51:21 字數 743 閱讀 3743

1、題目描述

2、思路及**

我們分別建立兩個棧:stack1、stack2. 在stack1中儲存資料也就是在隊尾插入節點,而stack2用來彈出,也就是在佇列頭部刪除節點的功能。主要在於如何刪除頭節點:需要將stack1的元素不停的使用pop()函式彈出,存放到stack2中,那麼相當於將stack1不停的以相反的順序壓入stack2,則頭節點也就在stack2的第乙個元素,使用pop()函式即可實現頭節點的刪除,之後後來繼續刪除,只要繼續從stack2中彈出即可,直到stack2為空;如果增加元素我們就壓入stack1,還要冒出元素,只要stack2不為空,我們就繼續壓入。

劍指offer 用兩個棧實現佇列

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

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

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

劍指offer 用兩個棧實現佇列

記錄 劍指offer 上的演算法題。題目描述如下 佇列的宣告如下 template class cqueue cqueue t deletehead bool empty private stack stack1 stack stack2 實現的 如下 templatet stack1.push n...