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

2021-10-23 02:01:36 字數 465 閱讀 6169

用兩個棧來做,乙個主棧,用來儲存資料;乙個輔助棧,用來當快取(時間複雜度o(n))

push(x),我們直接將x插入主棧中即可;

pop(),此時我們需要彈出最先進入棧的元素,也就是棧底元素。我們可以先將所有元素從主棧中彈出,壓入輔助棧中。則輔助棧的棧頂元素就是我們要彈出的元素,將其彈出即可。然後再將輔助棧中的元素全部彈出,壓入主棧中;

具體**如下:

class

solution

void

copy

(stack<

int>

&a, stack<

int>

&b)}

intpop()

private

: stack<

int> stack1;

stack<

int> stack2;

};

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

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。資料結構 棧 佇列 棧1元素入棧2,先入先出。參考部落格 在c 標準庫 stl 中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。棧 stack 說明及舉例 使用棧,要先包含標頭檔案 include 定義...

劍指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,但是需要首先將兩個棧合為乙個棧,但是出棧的話,需要將原先...