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

2021-10-06 23:47:00 字數 883 閱讀 8989

棧(stack),有些地方稱為堆疊,是一種容器,可存入資料元素、訪問元素、刪除元素,它的特點在於只能允許在容器的一端進行加入資料(push)和輸出資料(pop)

由於棧只允許在一端進行操作,因而按照先進後出(lifo, last in first out)的原理運作

佇列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表;

佇列是一種先進先出(fifo, first in first out)的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭

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

考慮使用列表來實現棧

class

solution

:def

__init__

(self)

: self.stack1 =

self.stack2 =

defpush

(self, node)

:# write code here

defpop

(self)

:# return xx

ifnot self.stack2 :

while self.stack1:))

return self.stack2.pop(

)return self.stack2.pop(

)

劍指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...