iT邦幫忙

第 12 屆 iThome 鐵人賽

0
自我挑戰組

學習筆記系列 第 46

用 Queue 製作 Stack

記錄學習內容。
以下內容和截圖大多引用文章。
還不了解,內容可能有錯誤。

Implement Stack using Queues
https://www.geeksforgeeks.org/implement-stack-using-queue/

方法1:

用兩個Queues ,q1、q2
主要是改,push (放東西)的部分。
步驟一 : q2.add(x); ,q2先把x放進去 。
步驟二 : q1 再把所有東西 一個一個放到 q2 。
最後
q1 變成  q2 (有東西的queue)
q2 變成  q1 (沒東西的queue)
//達成x 放到 stack top的效果

方法2:

改 pop 的部分 :
把 q1不斷 deQueue (取元素) ,存到q2 。 q1留最後一個元素,代表最晚放進去的元素 ,但現在要最早拿出來(因為改成stack),所以不再存到q2 ,直接remove消失掉,才符合stack 。 
最後 在交換q1 q2。

方法3 :

Implement a stack using single queue
https://www.geeksforgeeks.org/implement-a-stack-using-single-queue/

也可以只用一個queue來製作Stack 。

想法就是 原本 的順序顛倒 。
原本是 1 2 3 4(queue的rear ,代表最後放進來的)

變成 4 3 2 1 (這樣1 最早進來的 ,就被當成最後放進來的 ,當queue 要deQueue 時 ,就會是最後一個被deQueue的,達成stack效果)

上一篇
用Stack 製作Queue
系列文
學習筆記46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言