兩個佇列實現棧:
每次進入乙個佇列,取出得時候,把所有元素進入另乙個佇列,只留下乙個元素,以此實現棧的先進後出(filo)。
package algorithmbymyself;
import j**a.util.linkedlist;
import j**a.util.queue;
/* 用兩個佇列實現乙個棧
* * */
public class twoqueuetostack
public void push(int num)
public int peek()
while(data.size() > 1)
int res = data.poll();
help.add(res);
swap();
return res; }
public int pop()
while(data.size() > 1)
int res = data.poll();
swap();
return res;
}public void swap()
public static void main(string args)
}
兩個棧實現佇列:
注意stackpush傾倒至stackpop中時,第一stackpop要為空, 第二stackpush要全部倒進去!
package algorithmbymyself;
import j**a.util.stack;
/* * 注意stackpush傾倒至stackpop中時,
* 第一stackpop要為空,
* 第二stackpush要全部倒進去!
* */
public class twostacktoqueue
public void push(int num)
public int poll() else if(stackpop.isempty())
return stackpop.pop(); }
public int peek() else if(stackpop.isempty())
return stackpop.peek(); }
public void dao()
while(!stackpush.isempty()) }
public static void main(string args)
}
佇列實現棧棧實現佇列
佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...
佇列實現棧以及棧實現佇列
232.用棧實現佇列 簡單 225.用佇列實現棧 簡單 佇列是一種先進先出的資料結構,棧是一種先進後出的資料結構,形象一點就是這樣 這兩種資料結構底層其實都是陣列或者鍊錶實現的,只是 api 限定了它們的特性,那麼今天就來看看如何使用 棧 的特性來實現乙個 佇列 如何用 佇列 實現乙個 棧 首先,佇...
佇列實現棧棧
使用佇列實現棧的下列操作 push x 元素 x 入棧 pop 移除棧頂元素 top 獲取棧頂元素 empty 返回棧是否為空 思路 雙佇列實現 壓入建兩個空列 核心 相當於翻轉 給乙個值,壓入a,再把b 尾刪 的值壓入 a頭插 交換 a b 輸出b列 b實際值 儲存順序 與輸入的相反 輸入 1 2...