スポンサーリンク

【応用情報技術者試験】循環リスト

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

画像参照:https://note.com/kazushinakamura/n/n6b9e768054cd

特徴

  • 円環構造: 最後のノードが最初のノードを指すことで、リスト全体が閉じられた輪のようになります。
  • 終端がない: 通常の連結リストでは終端がNULLですが、循環リストでは終端が常に存在し、先頭に戻ります。
  • 種類:
    • 単方向循環リスト: 後ろ(次)の要素へのリンクのみを持つ。
    • 双方向循環リスト: 前と後ろ(次)の両方の要素へのリンクを持つ。 

応用例

  • リングバッファ: メモリが限られた環境で、常に最新のN個のデータを保持する際に使われ、古いデータが自動的に上書きされます。
  • OSのタスクスケジューリング: プロセスを順番に実行する際に利用されることがあります。 

メリット・デメリット

  • メリット: リストのどこからでも全体にアクセスでき、末尾の操作が容易(特に双方向の場合)。
  • デメリット: 無限ループに陥りやすいため、終了条件の判定に注意が必要。 

コメント