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

2021-10-03 23:07:29 字數 548 閱讀 6431

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

思路:

當stack2中不為空時,在stack2中的棧頂元素是最先進入佇列的元素,可以彈出。若stack2為空時,把stack1中的元素逐個彈出並壓入stack2。由於先進入佇列的元素被壓倒stack1的棧底,經過彈出和壓入之後就處於stack2的棧頂,有可以直接彈出。如果有新元素d插入,我們直接把它壓入stack1即可。

c++

class

solution

intpop()

}int q = stack2.

top();

stack2.

pop();

return q;

}private

: stack<

int> stack1;

stack<

int> stack2;

};

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

用兩個先進後出的結構來實現乙個先進先出的結構 相當於負負得正的意思。資料先進入棧1,後進的先出,對於棧2來講就是先進的,要後出,所以兩個棧加起來就實現了後進後出,先進先出。class solution intpop int y stack2.top stack2.pop return y priva...

劍指offer 用兩個棧實現佇列

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...

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

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...