2020/12/5 棧佇列堆(牛客網)
陣列與矩陣
用兩個棧實現佇列—牛客網
題目描述
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。
題解思路
stack1 棧用來處理入棧(push)操作,stack2 棧用來處理出棧(pop)操作。一個元素進入 stack1 棧之後,出棧的順序被反轉。當元素要出棧時,需要先進入 stack2 棧,此時元素出棧順序再一次被反轉,因此出棧順序就和最開始入棧順序是相同的,先進入的元素先退出,這就是佇列的順序。
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
return stack2.pop();
}else{
return stack2.pop();
}
}
}
相關文章
- 2020/12/9 棧佇列堆(牛客網)佇列
- 堆、棧以及佇列佇列
- 劍指offer(java實現)第5題“用兩個棧實現佇列”-牛客網Java佇列
- 演算法-棧佇列堆演算法佇列
- 牛客網 複數集合(小根堆的優先佇列、北郵機試)佇列
- 棧、堆、佇列深入理解,面試無憂佇列面試
- Python中堆、棧、佇列之間的區別Python佇列
- 佇列,棧佇列
- 棧、佇列佇列
- 棧-佇列佇列
- 堆--優先佇列佇列
- 佇列和棧佇列
- 棧和佇列佇列
- 常見的線性列表結構---【陣列、連結串列、棧、佇列、堆】陣列佇列
- 堆與優先佇列佇列
- 堆和優先佇列佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- java 棧與佇列Java佇列
- (js佇列,堆疊) (FIFO,LIFO)JS佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- 棧與佇列簡介佇列
- Chapter 2 棧和佇列APT佇列
- 6.13-棧與佇列佇列
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- 實現無鎖的棧與佇列(5):Hazard Pointer佇列
- 二叉堆優先佇列佇列
- 堆——神奇的優先佇列(上)佇列
- 棧,佇列,優先順序佇列簡單介面使用佇列
- 《演算法》- 佇列和棧演算法佇列
- 連結串列&鏈棧&佇列佇列
- 兩個棧實現佇列佇列
- 4_4雙棧佇列佇列
- 資料結構—棧/佇列資料結構佇列
- 單調棧/單調佇列佇列
- 資料結構-佇列、棧資料結構佇列
- 三、資料結構演算法-棧、佇列、優先佇列、雙端佇列資料結構演算法佇列
- 堆和堆的應用:堆排序和優先佇列排序佇列