python 兩個佇列實現1個棧

2021-10-07 19:25:34 字數 768 閱讀 7850

進棧:元素入佇列q1

出棧:判斷如果佇列q1只有乙個元素,則直接出隊。否則,把隊q1中的元素出隊併入隊q2,直到隊q1中只有乙個元素,再直接出隊。為了下一次繼續操作,互換隊a和隊b。

class solution:

def __init__(self):

self.queue1 =

self.queue2 =

def add(self, node):

def dele(self):

# return xx

if self.queue1 == :

return none

while len(self.queue1) != 1:

# 交換是為了下一次的pop

self.queue1, self.queue2 = self.queue2, self.queue1

return self.queue2.pop()

if __name__ == '__main__':

data = solution()

data.add('a')

data.add('b')

data.add('c')

print(data.dele())

print(data.dele())

print(data.dele())

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

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