5,用兩個棧實現佇列《劍指offer》

2022-09-08 19:12:12 字數 623 閱讀 9873

題目:

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

思路:

棧的特性:先進後出

佇列的特:先進先出

將棧1的內容全都彈出,然後推入棧2,彈出棧2 達到先進先出的功能;所以分為push棧 和 pop 棧

**:

class solution

int pop()

}result=stack2.top();

stack2.pop();

return result;

}private:

stackstack1;

stackstack2;

};

拓展:

用兩個佇列實現乙個棧:

思路:

兩個佇列都可以作為出棧的地方,但要保持乙個棧為空;

出棧時:將其中有資料(n個)的佇列,n-1個資料出隊,然**另乙個佇列,將最後乙個資料出隊,return返回;

入棧時:選擇有資料的哪個隊列入隊,都為空入隨便哪個隊都可以

劍指offer 5 用兩個棧實現佇列

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。思路 棧 先進後出,佇列 先進先出 1 2 3 棧 3 2 1 1 2 3 佇列 1 2 3 stack1進棧後為1 2 3 出棧並儲存在stack2中為3 2 1,stack2出棧就和佇列一致了。push,...

劍指offer 5 用兩個棧實現佇列

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 需要用棧來模擬佇列的push和pop操作。要知道,棧是先進後出,而佇列是先進先出,所以用棧實現佇列的時候,需要兩個棧,進棧可以直接進棧就ok,但是需要首先將兩個棧合為乙個棧,但是出棧的話,需要將原先...

劍指Offer 5 用兩個棧實現佇列

description用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。注 不考慮邊緣情況,如 在兩個stack都空的時候pop 作為乙個lifo的資料結構,stack中的元素在彈出的時候為反序。而為了實現乙個fifo的queue,我們就需要將反序的元素再push進令...