python 兩個棧實現隊列入隊出隊功能

2021-10-02 18:12:15 字數 901 閱讀 6118

'''

佇列特點:先進先出,一端進一端出

棧特點:先進後出,只從尾部出

思路:棧1彈棧:讓資料結構變成[300,200,100]

'''class

solution

:def

__init__

(self)

:'''建立2個棧空間'''

self.stack_a =

self.stack_b =

defpush

(self,value)

:'''入佇列:在stack_a中新增元素'''

defpop

(self)

:'''彈棧'''

#假如stack_b中有值,直接出隊,否則先將stack_a中的值迴圈彈出來新增到stack_b中(一直到值都彈完),

if self.stack_b:

return self.stack_b.pop(

)else

:#當self.stack_a中有值時,彈棧並新增到stack_b中

while self.stack_a:))

return self.stack_b.pop(

)if __name__ ==

'__main__'

: s = solution(

) s.push(

100)

s.push(

200)

s.push(

300)

print

(s.pop())

#第一次pop:100

print

(s.pop())

#第二次pop:200

print

(s.pop())

#第三次pop:300

兩個棧實現佇列 兩個佇列實現棧

1.兩個棧實現佇列 大致思路 入佇列時,將元素入棧s1,出佇列時,將s2中的元素出棧即可,如果s2為空,那麼將s1中 s1.size 1 個元素出棧,加入到s2中,然後將s1中最後乙個元素出棧,即完成了出佇列的操作 include using namespace std include includ...

兩個棧實現佇列,兩個佇列實現棧

include include include using namespace std 使用兩個棧實現佇列,實現了push,pop,front操作 其中棧s2是輔助棧,push直接在s1中插入 pop從s2中出棧,如果s2是空的,將s1倒進s2,然後再出棧,這樣減少了倒棧次數,比較高效。front就...

兩個棧實現佇列 兩個佇列實現棧

一 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。二 1 自己 基本思路 乙個棧用於壓縮,乙個專門用於彈出。因為棧是先進後出,所有的元素入棧再出棧,再入棧就可以將順序調整過來。但是沒有想到優化。class solution int pop int tem...