演算法題 兩個佇列實現棧

2021-08-06 07:21:49 字數 1175 閱讀 6840

思想:

入棧:如果佇列q2為空,將資料追加到q1

如果佇列q2不為空,先將q2中資料從首部彈出追加到q1中,再將資料追加入q1

出棧:

先將s1中資料從首部彈出追加到s2中,在從s2中從尾部彈出

#coding:utf-8

class

stack

(object):

def__init__

(self):

self.q1 =

self.q2 =

#入棧definstack

(self,data):

while self.q2:

print('------',data)

#出棧defoutstack

演算法題 用兩個棧實現佇列

用兩個棧實現佇列 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。思路 1.stack是先進後出,而佇列是先進先出。2.stack1用於插入,運用另乙個stack2插入從stack1中彈出的資料後,資料的順序就會反轉。stack integer stack1 new...

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

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