トップアルゴリズム > 循環配列

循環配列

循環配列とは

配列には先頭があり、末尾があるが、末尾の次が先頭と考えて、リング状の配列として扱う。

用途は色々ある。

FIFOキュー

シンプルな実装例[Java]を下に示す。循環バッファと呼ばれることもある。 count を使わずに、空と満杯をチェックすることもできる。

  String[] data = new String[SIZE];
  int in = 0;
  int out = 0;
  int count = 0;

  void enqueue(String v) {
    if (count < SIZE) {
      data[in] = v;
      in = (in+1) % SIZE;
      count++;
    } else {
      // エラー(満杯)
    }
  }

  String dequeue() {
    if (count == 0) {
      return null;  // 空
    }
    String v = data[out];
    out = (out+1) % SIZE;
    count--;
    return v;
  }

参考記事

[1] 循環バッファ