5 兩個棧實現佇列的push pop

2021-08-17 15:42:33 字數 584 閱讀 2686

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

1、利用兩個棧實現,分別記為stack1,stack2.

2、佇列的push操作:有新元素node進佇列時候,讓stack1.push(node)。

3、佇列的pop操作:將所有stack1的元素倒入到stack2中,stack2的top元素即為出佇列的元素。

在stack1倒入stack2的操作中,需要注意兩點。

(一)需要保證stack2為空時候才能倒

(二)每倒一次都需要將stack1中的元素倒乾淨。

佇列pop()操作即判斷stack2是否為空,不為空就彈出top元素。為空的話,就讓stack1繼續倒元素過來。

**如下:

public:

void push(int node)

int pop()

}temp = stack2.top();

stack2.pop();

return temp;

}private:

stackstack1;

stackstack2;

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

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