特別線形形式:スタック

   二つの基本的なデータ構造の正面に導入- アレイ 及び リスト 、論理的な観点から、それらは両方とも線形構造である(構造は、線図のように2つだけの長手方向、非線形構造を含む木を、配置されており、長所と短所を持って、配列ストレージは、チェーン店である、ビューのストレージ点から、)後述する、連続したメモリアレイが事前に適用する必要があり、それは制限がオーバーフローする超えるが、小さなデータセットの正確サイズを知ります、また読みする方が便利ですが、インサートと悪化するパフォーマンスを削除する配列は、配列のより効率的に、ランダムアクセス特性になります使用して、リストはそこにはスペースの制約はありませんが、、ポインタを格納挿入し、高効率を削除するには、追加のスペースが必要になりますが、サポートされていない場合ランダムアクセス。PHPはほとんどこれらと接触していないが、あなたはC言語を使用することを学ぶが、これらの言葉は、まだ基礎を知っている必要があります。
   スタックとキュー:次は二つの特別な線形構造、線形構造を導入したり、特定のシーンのニーズを満たすためにしたいです。
   まず、スタックを見て:
     スタックスタックと呼ばれ、これは一端でのみ線形テーブル挿入および欠失を定義し、アウト進め、第一アウトの最後(LIFO)の特性を満たすこと。通常、他の端がスタックの最下部と呼ばれると呼ばれる、スタックが空のスタックと呼ばれる任意のデータが含まれていない、スタックの一端の挿入や削除を許可します:
     スタックは、配列/リストによって達成順次積み重ねながら、多くの場合、配列によって呼び出され、リンクリストによって実装リンクスタックと呼ばれるサポートしています。
     それはPHPで実証されているので、私は物事をシンプルにするために、PHP言語に傾向があるしようと、我々は、単にPHPの配列経由の単純なシーケンスを実現する方法を次のスタックの下に示します。
/ * * 
 *シンプル順次スタックはPHP配列によって達成される
 * / 
クラスSimpleStack { 

    プライベート _stack $ = []
     プライベート の$ _size = 0 

    パブリック 関数 __construct($サイズ = 10 
    { 
        $この - > _サイズ= $サイズ; 
    } 

    // 先頭の要素を取得
    、公開 機能のPOPを()
    { 
        // 空のスタック
        IFCOUNT$この - > _スタック)== 0 ){
             返す falseに; 
        }
        戻り array_pop$この - > _stack); 
    } 

    // スタックの一番上に要素をプッシュ
    パブリック 関数プッシュ($値
    { 
        // フルスタック
        IFCOUNT$この - > _スタック)== $この - > _size){
             リターン falseに; 
        } 
        array_push$この - > _スタック、$値);
         戻り値 をtrueに; 
    } 

    公共 機能のisEmpty()
    { 
        // スタックが空の場合
        戻る 現在の$この == - > _スタック)はfalse ; 
    } 

    パブリック 関数サイズ()
    { 
        戻り カウント$この - > _size)。
    } 
} 

$スタック = 新しい SimpleStack(15 )。
var_dump$スタック - >のisEmpty());  
$スタック - >プッシュ(111 );
$スタック - >プッシュ( '长坂坡' );
var_dump$スタック - >ポップ());  长坂坡
のvar_dump$スタック- >サイズ());  1

   SPL PHPライブラリーの一番下には、スタックの概念を使用すると、画像スタック操作過程を理解するためにチャートの下に与えられ、理解することは複雑ではない、比較的単純で、実装クラスSplStackスタックを提供します。

   

   、そのような今後当社ブラウザ、後方機能などのエディタ/ IDEの取り消し、キャンセルアンドゥ機能、再帰と呼ばれるプログラムコードの機能、4つの事業として、広く使用され、日々の開発およびソフトウェアの使用にスタックこれは、達成するために、スタックデータ構造に基づいており、さらには有名なstackoverflowのサイトにも助言を求めるために必要性を意味する「スタックオーバーフロー」を取っています。

 

 

 

 

 

 

 
 

おすすめ

転載: www.cnblogs.com/mzhaox/p/11294213.html
おすすめ