5一般的なデータ構造
12795 ワード
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"}
役に立つリンクと資源
Reference
この問題について(5一般的なデータ構造), 我々は、より多くの情報をここで見つけました https://dev.to/afozbek/5-common-data-structures-3jblテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol