劍指offer 6,用棧來實現佇列(反之)

2021-10-01 08:41:00 字數 507 閱讀 3041

題目描述

用兩個棧來實現乙個佇列。

有兩個棧,棧的特點是,元素先進後出,佇列的特點是,先進先出。

所以進棧的那個不能用來出,得換乙個棧,得出,兩次先進後出後,就會得到進來時後得順序了。

所以,當push 時: 加入用棧1來進入資料

當pop 彈出資料時候,分情況了:

如果此時棧2為空,就將所有的棧1中的元素壓進來,此時就是他們進來的順序,再乙個乙個彈出,當棧2不為空時,直接彈就行。直到為空了。

**實現

void

push

(int node)

intpop()

}

res=stack1.

top();

stack1.

pop();

return res ;

//棧的彈出有值,這是再牛客網上的題目

}

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

劍指offer 6.用兩個棧實現佇列 題目 思路 push的時候很容易 pop的時候需要保證能夠先進先出,因為stack本身是先進後出的,所以需要兩個stack導一下 複雜度pop一次需要o n 啟發或者坑 大概是溫習了stack的functions吧!class solution int pop ...

劍指Offer 6 用兩個棧來實現乙個佇列。

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。棧 stack 先進後出 不允許遍歷 佇列 queue 先進先出 不允許遍歷 劍指offer思路 建立兩個棧stack1和stack2,使用兩個 先進後出 的棧實現乙個 先進先出 的佇列。我們通過乙個具體的例...

劍指Offer 6 替換空格

題目 思路 我們首先想到的就是從前往後掃瞄,如果空格,就替換為 20,但是這樣需要移動空格後的元素。我們還有一種方法,首先遍歷一遍字串,統計出空格的個數,並可以由此計算出替換之後的字串的長度。每替換乙個空格,長度增加2,因此替換之後的字串長度等於原來的長度加上2乘以空格的個數。即 替換後的字串的長度...