用2個棧實現佇列
題目
程式碼
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.peek());
stack1.pop();
}
}
int ret = stack2.peek();
stack2.pop();
return ret;
}
}
思路
2個棧實現一個佇列,由於佇列是先進先出,棧是先進後出的。
1.push方法入棧就是直接將資料push進stack1。
2.pop方法就要分情況,如果stack2為空,就把stack1的元素全都push進stack2,然後peek棧頂元素。如果stack2不為空,就直接peek棧頂元素就可以。
總結
題目比較簡單,就是把棧1的元素輸入到棧2,就變成正向排序了。
相關文章
- 用兩個棧實現佇列佇列
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- 兩個棧實現佇列佇列
- 【ZJOF】用來個棧來實現一個佇列佇列
- 面試題之【用兩個棧實現佇列】面試題佇列
- 題目9:用兩個棧實現佇列佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- 兩個棧實現佇列操作佇列
- 用JavaScript實現棧與佇列JavaScript佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- offer通過--7兩個棧實現佇列-2佇列
- offer通過--8兩個棧實現佇列-2佇列
- 資料結構 使用2個棧實現一個佇列資料結構佇列
- leedcode-用佇列實現棧佇列
- leedcode-用棧實現佇列佇列
- 實現無鎖的棧與佇列(2)佇列
- 劍指offer | 09. 用兩個棧實現佇列佇列
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 用棧實現佇列,實現Enqueue和Dequeue方法佇列ENQ
- 用佇列實現棧,用棧實現佇列,聽起來有點繞,都搞懂了就掌握了精髓!佇列
- [每日一題] 第七題:用兩個棧實現佇列每日一題佇列
- 【劍指offer】兩個棧實現一個佇列佇列
- 【劍指offer】兩個佇列實現一個棧佇列
- 力扣-232. 用棧實現佇列力扣佇列
- 《劍指 Offer》棧實現佇列佇列
- C#實現棧和佇列C#佇列
- LeetCode225. 用佇列實現棧LeetCode佇列
- 利用棧實現佇列(C語言實現)佇列C語言
- Chapter 2 棧和佇列APT佇列
- 劍指offer(java實現)第5題“用兩個棧實現佇列”-牛客網Java佇列
- 怎樣用一個佇列和一個棧實現求一個表示式的值?佇列
- 實現無鎖的棧與佇列(4)佇列
- 實現無鎖的棧與佇列(3)佇列
- 實現無鎖的棧與佇列(1)佇列
- Java面試題:棧和佇列的實現Java面試題佇列
- 用 Rust 實現佇列Rust佇列