オファーを証明安全[] []スタックは、機能分スタックを備えます

タイトル:スタックデータ構造定義、スタックに含まれる分関数の最小要素であることができるこのタイプの実装(べき時間複雑性O(1))。

 

:スタックとして、変数は、オペランドスタックが含まれている、ストレージ変数だけではなく最小数はちょうどint型であることを、あなたは二次のスタックを格納するために使用する必要があります

  そうスタックメモリ最小数の最小数を作成するためにデータ・ステーション・ストレージ・スタックを作成します

  スタック:スタック内のスタックデータ、最小限のスタックが空の場合は||値が最小スタックトップの要素よりも小さい、値スタックを置く、または先頭の要素一度再エントリー

  スタックの要素がある場合には、スタック:スタック

  スタックを取る:スタックは、データスタックを返します。

  最小値をとる:最小スタックスタックを返します。  

 

クラスのソリューション{ 

パブリック:
    無効プッシュ(int値)
    { 
        s_data.push(値); 
        IF((s_min.empty()== TRUE)||(値<s_min.top()))
        { 
            s_min.push(値)。
        } 
        { 
            s_min.push(s_min.top())。
        } 
    } 
    ボイドポップ()
    { 
        IF(s_data.top()> 0 && s_min.top()> 0)
        { 
            s_min.pop()。
            s_data.pop(); 
        } 
    } 
    int型の上部()
    { 
        戻りs_data.top()。
    } 
    INT分() 
    {
        リターンs_min.top(); 
    } 
プライベート:
    スタック<整数> S_DATA。
    スタック<整数> S_MIN。
}。

  

 

 

 

関連トピック:

  最小のスタック:スタックで得られた最小値、プッシュ:スタックに要素を挿入、POP:最小のスタックを達成する、3つの動作、minが存在するトップ要素をポップし、これらのアクションの時間複雑度は(Oであること1)

  n次元アレイの最大深さを得る:string型のn次元アレイ、アレイまたはデジタルintのアレイのそれぞれの値の入力パラメータ。機能の最大の深さを実感してください、あなたはどのように多くのネストされたリストのリストを取得することができます。

  ポストフィックスに中置式、+ B * C / D-A + F / B出力ABCを入力* D / +-FB / +:後置中置式を転送します

 

おすすめ

転載: www.cnblogs.com/xiexinbei0318/p/11432619.html