資料構造復習、Linked List 全攻略!

Linked list の特性

Linked List は不連続のメモリアドレスで構成され、ポインタ(pointer)を通じて要素(elements)を相互にリンクするデータ構造です。

Linked list の利点

Array と比較して、Linked List には以下の利点があります:

1.Linked List はサイズが柔軟で、事前にサイズを指定する必要がありません。
2.要素の挿入や削除のコストが低く、ポインタの指向を変更するだけで済み、全体を移動する必要がありません。
3.連続したメモリ空間を必要としないため、より柔軟です。

Linked list の欠点

Array と比較して、Linked List には以下の欠点があります:

1.ランダムアクセスの効率が悪く、最初のノードから順に走査する必要があります。
2.各ノードのポインタに追加のメモリ空間が必要です。
3.相対アドレスを直接使用できません。Array は連続アドレスのため相対アドレスが使用できますが、Linked List では使用できません。

Linked list の構成

Linked List の各ノードは以下の2つの要素を含みます:

1.データ(Data)
2.ポインタ(Pointer)

以下は Kotlin で Linked List を実装するコードです
以下は Linked List を走査するコードです
上記のコードに加えて、Kotlin の Data Class を使用して Linked List を実装することもできます:
Linked List の複雑度


時間計算量 最悪の場合 平均の場合
Search O(n) O(n)
Insert O(1) O(1)
Deletion O(1) O(1)

You might also enjoy