劍指offer 刷題思路(兩個棧實現佇列)

2021-10-05 22:41:38 字數 499 閱讀 6001

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

演算法思想:棧的特性是先進後出,佇列的特性是先進先出。佇列的push 可以用乙個棧的push進行操作,佇列的pop ,要pop 棧最底下的元素。可以將除最底下的元素push 到另外的乙個棧,取出棧低元素之後再進行一次push,push到原棧。

class

solution

intpop()

int a=stack2.

top();

stack2.

pop();

while

(stack2.

size()

)return a;

}private

: stack<

int> stack1;

stack<

int> stack2;

};

劍指Offer刷題 用兩個棧實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。本題要求用兩個棧實現佇列的入隊和出隊操作。入隊 由於棧是後進先出,佇列是先進先出。所以當兩個棧堆疊起來時,就能實現先進先出。只需要把資料放入到stack1中,然後再順序輸出放入到stack2中,但由於需要考慮到連續進入...

劍指 offer 刷題 09 用兩個棧實現佇列

示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 1 values 10000思路 題目的要求是,用兩個 先進後出 的棧實現乙個 先進先出 佇列,並且只需要考慮插入和刪除操作。我們先通過乙個例子分析一下佇列的插入和刪除操作。...

劍指offer 兩個棧實現佇列

使用兩個棧實現乙個佇列。棧是先進後出,佇列是後進先出。如果只有乙個棧那麼是無法實現佇列的,但是兩個棧完全可以。如下 templateclass cqueue templatet cqueue deletehead if stack2.size 0 throw queue is empty t ret...