共通のJavaScriptのデータ構造

データの構造

  • スタック:高度(LIFO)の原理に準拠の順序付けられた集合の一種、新たにスタックの端部に記憶された要素を追加または削除するには、スタックの最上部、およびスタックの底にもう一方の端と呼ばれます。スタックでは、新しい要素はスタックの最上部に近い、古い要素は、スタックの最下部に近いです。
  • キュー:反対の項目の順序付きセットに従う原則としてFIFO(FIFO /先入れ先出し);新しい最後尾にキューに追加された要素、および要素が頭から削除されます。新しく追加された要素がキューの最後になければなりません。
  • リスト:要素の順序付けられた集合を格納するが、配列は異なる、メモリ内のリストの要素が直列に配置されていない、次の要素(ポインタ/リンク)に自ノードと基準ポイントと、記憶素子の各要素コンポーネント。
  • セット:順不同のセットのみ(すなわち重複しない)項目組成物、数学的概念の同じ限定されたセットが、コンピュータサイエンスのデータ構造のアプリケーションに使用されるこのデータ構造。
  • 辞書データ構造のデータ形式として[キー値]で、キー名はJavaScriptで同様の特定の要素を照会する特徴:Object
  • ハッシュ:キー値(キー値)によれば、直接データ構造にアクセスし、それが記録にアクセスするために、テーブルルックアップをスピードアップするためには、キー値によって所定の位置にマッピングされ、このマッピング機能は、記録を格納するために、ハッシュ関数を呼び出し配列はハッシュテーブルと呼ばれています。
  • ツリー:n(nは> = 1)階層関係を持つノードの有限集合、それは木の逆さまのように見えるので、それは「木」と呼ばれているが、それはそれがルートであると言うことです上向きに、葉と下方に、実質的に多くの関係は、ツリー図の特殊な形態として見ることができます。
  • :図は、ネットワーク構造の抽象モデルである;図は、エッジによって接続されたノード(頂点)のセットであるによって表される任意のバイナリ関係であってもよく、そのような共通のとおり道路地図図、多くの関係を示します。

スタック

 

 

そのような本の山として、共通スタックの人生の例としては、あなたは最終的にあなたが離れて取るの後にこれが初めてとなることを我慢し、バックボタンをクリックすると、このようなブラウザの履歴へのアクセスとして、最後の最初の履歴からサイトにアクセスポップ。

以下の一般的な方法を含んでスタック:

  1. プッシュ:要素がスタックにプッシュされます
  2. ポップ:トップ要素を削除し、その要素が削除されて返されます
  3. PEEK:先頭の要素を返します。
  4. isEmpty():スタックの要素があります
  5. クリア():スタックのすべての要素を削除します
  6. サイズ:スタック内の要素の数を返します。

オブジェクトとしてスタックを達成

    <スクリプトタイプ= "テキスト/ JavaScriptを">
         機能スタック(){
             この .count = 0 ;
             この .storage = {};
             // 要素がスタックにプッシュされ
            、この .push = 関数(値){
                 この .storage [ この .count] = 値;
                 この .count ++ ; 
            } 
            // 先頭要素を削除し、要素を除去し、戻る
            この .pop = 関数(){
                 IFこの .count === 0 ){
                     リターン;未定義
                } 
                この .count-- VaRの結果は= この .storage [ この.count];
                 削除 この .storageを[ この.count];
                 戻り、その結果
            } 
            // 最上位の要素を返し
            、この .peek = 関数(){
                 リターン この .storage [ この .count - 1 ]; 
            } 
            // スタックの要素がある場合
            、この .isEmpty = 関数(){
                 //長さを決定ES6オブジェクト属性構文を使用
                // ; Object.keys(this.storage).LENGTH == 0を返す
                返す この .count == 0 ; 
            } 
            // スタック内のすべての要素を削除する
            この .clear = 関数(){
                 この .count = 0
                 // this.storage = {}を返す; 
            }
             // スタック内の要素の数を返す
            この .size = 関数(){
                 戻り 、この.count; 
            } 
        } 


        VARの newStack = 新しい新しいスタック(); 
        newStackを。プッシュ(「第一の要素」isEmpty())。
        console.log("スタック要素が削除されている印刷:" + newStack.pop());
     </ SCRIPT>

配列としてスタックを達成

    <スクリプトタイプ=「テキスト/ JavaScriptを」>
         機能スタック(){
             // スタックのアレイ要素を保存し
            、この .dataStore = [];
             // 記録するために使用されるトップスタック位置は、0に初期化され         
            、この .top = 0 ; 

            この = .push 機能(要素){
                 この .dataStore [ この .top ++] =要素;    // 最上位の最初の添加元素、1を加算した後トップ
            }
             この .pop = 関数(){
                 // 第1だけデクリメント上部を、次いで戻ります上部要素位置
                戻る この .dataStoreを[ - この.top]。
            }
            この .peek = 関数PEEK(){
                 戻り 、この .dataStoreを[ この .top - 1 ]。
            } 

            
            この .isEmpty = 機能クリア(){
                 戻り 、この .top == 0 
            } 

            この .clear = 機能クリア(){
                 この .top = 0 
            } 

            この .LENGTH = 関数の長さは(){
                 戻り 、この.topを、
            } 
        } 
        VAR= newStack 新しい新しいスタック(); 
        newStack.push( "第一要素" ); 
        newStack.push( "第二の要素" ); 
        newStack.push( "第三の要素" 
        はconsole.log(「プリント積層体要素の数: "+ newStack.length()); 
        はconsole.log( "スタックのトップ要素を印刷する: "+ newStack.peek()); 
        (はconsole.log "スタックを除去するための印刷要素:「+ newStack .pop()); 
        はconsole.log(「スタックの最上位要素のトップ要素を除去した後、再び印刷:」+ newStack.peek()); 
        にconsole.logは(「スタック内の要素があるか否かを判断する」+ newStack。 isEmpty()); 
        はconsole.log(「全ての要素のスタックを削除します」+ すべての要素のスタックを削除します。「+ newStack.clear());
        はconsole.log( "スタックを除去した後に要素があるか否かが判断される:" + newStack.isEmpty());
     </ SCRIPT>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

キュー

最後尾にキューに追加された新しい要素、および要素を先頭から削除され、キュー、次のスタックとは反対側の項目の順序集合は、FIFO(FIFO /先入れ先出し)の原則です。新しく追加された要素がキューの最後になければなりません。

実際には、最も一般的な例は、ラインアップ、バックドア機構でバスのフロントドアには、銀行のラインを食べるまでのライン...人々の前で継続する次の人が完了した後に、そのトランザクションを完了するための優先事項です。

 

コンピュータサイエンスでは、一般的な例は、プリントキューです。たとえば、私たちは、ドキュメントの5つのコピーを印刷する必要があります。私たちは、それぞれの文書を開き、[印刷]ボタンをクリックします。各文書には、印刷キューに送信されます。あなたはすべての文書を印刷するまで印刷キューに送られる最初の文書は、その上の最初の印刷、およびされます。

同様に、我々はJavaScriptでキュークラスを達成しました。

 

おすすめ

転載: www.cnblogs.com/zhuochong/p/11627598.html
おすすめ