2つのスタックキューと - 安全性(スタックやキュー)を証明するためにご提供変更

  (2つのスタックとキュー)タイトル説明:


キューを達成するための2つのスタック、完了キューのプッシュとポップ操作。キューの要素がint型。


 

  そのような入力データ{A、B、C}、データのそのような線2つのスタック、キューの最終形態の所望の使用を達成するために、ポストの外に前進させられる要素スタックデータ構造については、次にFIFOに有しますスタック内の一方で、最初はそこそこに行われるスタックプッシュ動作のこの最初の前に、最初に出てくる行う必要があり、ポップ操作があるキューのリアライズを聞かせて、スタックの底に位置に入るために、底部にあるので、それはBに必要であり、cがこの時点でキュー要素を飛び出し、子供がstack2 {C、B}であるように、stack2内部をプッシュするデータのポップアップ、ポップ、今する必要がされていますもともと、a、b、cの中に入るので、直接Stack2要素がライン上で飛び出します。次のように結論をまとめることができます。

  直接stack1に、挿入された(1)。

  (2)場合stack2はstack2は、stack1 stack2スタックにおける一つのスタック一方の総数空の場合、上部要素ポップstack2を空にし、次に上部要素stack2をポップしない吐出。

       

 

 

   実現:プッシュ操作は、すべての要素が最初stack1内部に圧入されているであろう、ポップ操作は、まず、第1のポップアップあれば、あなたはstack2に押し込ま再びポップアップしstack1内のすべての要素を持っていないstack2、要素があるかどうかを決定することです。

輸入java.util.Stackを;

パブリッククラスソリューション{
    スタック<整数> stack1 =新しいスタック<整数>();
    スタック<整数> stack2 =新しいスタック<整数>();
    
    公共ボイドプッシュ(INTノード){
        stack1.push(ノード)。
    }
    
    公共int型のポップ(){
        IF(stack2.size()<= 0){
            一方、(stack1.size()!= 0){
                stack2.push(stack1.pop())。
            }
        }
        リターンstack2.pop();
    }
}

  

おすすめ

転載: www.cnblogs.com/dashenaichicha/p/12540067.html