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