5一般的なデータ構造



1 .配列
array index配列で識別できる要素のコレクションです
各データ要素には、配列内のその項目の位置に対応するCount indexという正の数値が与えられる.大多数の言語は、配列の開始インデックスを0と定義します.
以下に2種類の配列を示します:
  • 一次元アレイ
  • 多次元配列
  • let arr = [1, 2, 3, 4]
    
    arr[1] // 2
    


    2 .スタック
    スタックは、順序の順序を保持する抽象データ型です.
    キューとは対照的に、スタックは最後のin、first out(lifo)構造である.
    スタックの実際の生活の例では、一番上のもののすべてを削除する必要がスタック内の最初の本を取るために垂直方向に配置された書籍の山である可能性があります.
    これは最後のlifoと呼ばれます


    3 .キュー
    Stackと同様に、キューは要素をシーケンシャルに格納する別の線形データ構造体です.
    スタックとキューの間の唯一の重要な違いは、LIFOメソッドを使用する代わりに、キューメソッドを実装していることです.
    LIFO -> last first first out (スタック)
    FIFO -> first in first out (キュー)


    連結リスト

    リンクリストは、最初に配列に似ているかもしれませんが、メモリ割り当て、内部構造、および挿入と削除の基本的な操作がどのように行われるかにおいて異なっているかもしれないもう一つの重要な線形データ構造です.
    リスト内の次のノードへの参照を含むノードと呼ばれるリンクリストの各項目.
    const linkedList = {
        // head of the linked list
        head: {
            value: 6
            next: {
                value: 10                                             
                next: {
                    value: 12
                    next: {
                        value: 3
                        //  Last value points -> null                           
                        next: null  
                      }
                    }
                }
            }
        }
    };
    
    最初にリンクリストのノードクラスを作成しましょう
    class ListNode {
        constructor(data) {
            this.data = data
            this.next = null                
        }
    }
    
    次に、ノードを引数として取得するLinkedListを作成できます.
    class LinkedList {
        constructor(head = null) {
            this.head = head
        }
    }
    
    let node1 = new ListNode(2)
    let node2 = new ListNode(5)
    node1.next = node2
    
    let list = new LinkedList(node1)
    
    console.log(list.head.next.data) //returns 5
    

    5 .ハッシュテーブル(辞書を使うオブジェクト)

    ハッシュは、オブジェクトをユニークに識別して、その「キー」と呼ばれている若干の予め計算されたユニークなインデックスで各々のオブジェクトを格納するのに用いられるプロセスです
    したがって、オブジェクトは「キー値」対の形で格納されて、そのような項目のコレクションは「辞書」と呼ばれています
    各オブジェクトは、そのキーを使用して検索することができます.ハッシュ化に基づく異なったデータ構造があります、しかし、最も一般的に使用されるデータ構造は「ハッシュ表」です.
    const collection = new Map();
    
    collection.set("Nathan", "555-0182");
    collection["size"] = false;
    
    console.log(collection.get("size")); // undefined
    console.log(collection.size); // 1
    

    5.1 .フィルタアウト重複項目
    
    let items = ["apple", "pear", "orange", "banana", "apple",
             "orange", "apple", "pear", "banana", "orange",
             "apple", "kiwi", "pear", "apple", "orange"]
    
    let set = new Set(["apple", "pear", "orange", "banana", "apple",
             "orange", "apple", "pear", "banana", "orange",
             "apple", "kiwi", "pear", "apple", "orange"])
    
    console.log(set)
    // Set(5) {"apple", "pear", "orange", "banana", "kiwi"}
    

    役に立つリンクと資源

  • The top data structures you should know for your next coding interview
  • How to Implement a Linked List in JavaScript