ブラシ問題---2つのスタックでキューを実現(簡単)


タイトルの概要:
2つのスタックで1つのキューを実現し、キューのPushとPop操作を完了します.キュー内の要素はintタイプです.
テーマ分析:
1.自分が最初に作ったとき、この問題を手に入れても手がつけられないのか、太菜なのか、斬新な問題に出会っても手が下がらない.2.ヒントを見てから、この問題をやります.3.まず、キューの「先進先出」の原則とスタックの「先進後出」の原則をつかむ.4.データa,b,cを取得し、pushをスタックに入れ、スタック内の格納順序がabcである場合、データを再読み込みするときはcbaであり、これはキューの原則とは逆であるが、私たちは2つのスタックを持っている.これらのデータを第2スタックに読み出すと、第2スタックの記憶データがcbaとなり、このとき第2スタックの中でデータを読み出すとcbaとなり、キューと一致する.5.では、第1のスタックにデータが格納され、第2のスタックが空の場合、第1のスタックに格納されたデータを第2のスタックに転送する.第2スタックからデータを読み出すたびに,問題要求を実現する.6.簡単な問題で、結局自分では全く考えられなくて、難しい問題です.
コードの例:
import java.util.Stack;

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()){
            int i = 0;
            while(!stack1.isEmpty()){
                i = stack1.pop();
                stack2.push(i);
            }
        }
        return stack2.pop();
    }
}