您好,登錄后才能下訂單哦!
【題目描述】
As the title described, you should only use two stacks to implement a queue's actions.The queue should support push(element), pop() and top() where pop is pop the first(a.k.a front) element in the queue.Both pop and top methods should return the value of first element.
正如標(biāo)題所述,你需要使用兩個(gè)棧來(lái)實(shí)現(xiàn)隊(duì)列的一些操作。隊(duì)列應(yīng)支持push(element),pop() 和 top(),其中pop是彈出隊(duì)列中的第一個(gè)(最前面的)元素。pop和top方法都應(yīng)該返回第一個(gè)元素的值。
【題目鏈接】
http://www.lintcode.com/en/problem/implement-queue-by-two-stacks/
【題目解析】
用兩個(gè)Stack來(lái)實(shí)現(xiàn)一個(gè)Queue,可以考慮到push()時(shí),幾乎與Queue中的offer()一樣,都是加在末尾,區(qū)別是當(dāng)Stack pop()時(shí),取出的是最近加入(newest)的元素,而Queue用poll()則是將最老(oldest)的元素取出。使用2個(gè)Stack,可以將stack2作為push()時(shí)的目標(biāo),而另一個(gè)stack1用來(lái)翻轉(zhuǎn)順序,只有當(dāng)peek()或者是poll()時(shí),才需要將元素翻轉(zhuǎn)存入stack1,再進(jìn)行讀取。
【參考答案】
http://www.jiuzhang.com/solutions/implement-queue-by-two-stacks/
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。