循環リストとは、最後の要素が先頭の要素にリンク(つながり)を持ち、円環状(リング状)にデータが並んだ連結リストのことです。先頭や末尾の区別がなく、どこからたどっても一周して元の要素に戻ってこれるのが特徴で、常に最新のデータを保持する「リングバッファ」などに応用されます。

画像参照:https://note.com/kazushinakamura/n/n6b9e768054cd
特徴
- 円環構造: 最後のノードが最初のノードを指すことで、リスト全体が閉じられた輪のようになります。
- 終端がない: 通常の連結リストでは終端が
NULLですが、循環リストでは終端が常に存在し、先頭に戻ります。 - 種類:
- 単方向循環リスト: 後ろ(次)の要素へのリンクのみを持つ。
- 双方向循環リスト: 前と後ろ(次)の両方の要素へのリンクを持つ。
応用例
- リングバッファ: メモリが限られた環境で、常に最新のN個のデータを保持する際に使われ、古いデータが自動的に上書きされます。
- OSのタスクスケジューリング: プロセスを順番に実行する際に利用されることがあります。
メリット・デメリット
- メリット: リストのどこからでも全体にアクセスでき、末尾の操作が容易(特に双方向の場合)。
- デメリット: 無限ループに陥りやすいため、終了条件の判定に注意が必要。

コメント