Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

連結リスト

連結リスト(Linked List) は、各要素(ノード)がデータと次の要素への参照(ポインタ)を持つデータ構造

配列と異なり、メモリ上に連続して配置される必要がない

特徴:

  • 要素の挿入・削除がO(1)O(1)で可能(位置がわかっている場合)

  • 任意の位置へのアクセスはO(n)O(n)(先頭から順にたどる必要がある)

  • メモリの動的な割り当てが可能

操作:

  • insert(x): リストに要素xを挿入する

  • delete(x): リストから要素xを削除する

  • search(x): リストから要素xを検索する

リスト: [1, 2, 3]
2を検索: True
2を削除後: [1, 3]
NOTE: Pythonのlistは動的配列

そのためlist[i]での参照はO(1)O(1)で速く、挿入・削除が遅い

特性Python list連結リスト
メモリ配置連続非連続
lst[i] の計算量O(1)O(n)
末尾 append平均 O(1)(償却)O(1)
途中挿入・削除O(n)(シフトが必要)O(1)(参照があれば)
キャッシュ効率良い悪い