Upgrade to Pro — share decks privately, control downloads, hide ads and more …

キューとは何か

tsuda.a
April 24, 2024

 キューとは何か

キューが分からない、何に使うか不明、という話があったので、リングバッファを用いた例を使って説明を試みました。

tsuda.a

April 24, 2024
Tweet

More Decks by tsuda.a

Other Decks in Programming

Transcript

  1. キューの動き(1) 5 1 6 2 0 7 4 3 5

    6 2 0 7 4 3 5 1 6 0 7 4 3 1 2 Read ポインター : 0 Writeポインター : 0 Read ポインター : 0 Writeポインター : 1 Read ポインター : 0 Writeポインター : 2 初期状態 Enqueue(1) Enqueue(2) 書き込み 書き込み
  2. キューの動き(2) 5 6 2 0 7 4 3 5 6

    2 0 7 3 5 1 6 0 7 3 1 4 2 Read ポインター : 0 Writeポインター : 3 Read ポインター : 1 Writeポインター : 3 Read ポインター : 1 Writeポインター : 4 1 4 Enqueue(3) Dequeue(1) Enqueue(4) 書き込み 書き込み 読み込み
  3. キューの動き(3) 5 6 0 7 4 3 5 1 6

    2 0 7 5 1 6 0 7 3 1 4 2 Read ポインター : 2 Writeポインター : 4 Read ポインター : 3 Writeポインター : 4 Read ポインター : 4 Writeポインター : 4 2 3 4 Dequeue(2) Dequeue(3) Dequeue(4) 読み込み 読み込み 読み込み
  4. 特徴 • 固定長のバッファ(=固定サイズのメモリ)で実装可能。 • Read ポインターと Write ポインターに差があると、未読み出しのデータが ある。 •

    バッファ数-1 のデータを蓄積可能。 (先の例の場合、バッファ数は 8 なので、7 データまで蓄積可能)