2025.01.08
キュー(Queue)とスタック(Stack)
キューとは?
キュー(Queue)は「待ち行列」のことで、コンピュータのデータ構造の1つです。
先に入れたデータから順番に取り出される構造で、「先入れ先出し」、「FIFO(First In First Out)」とも呼ばれます。
キューにデータを入れることをエンキュー(Enqueue)といい、取り出すことをデキュー(Dequeue)といいます。
以下は、キューのイメージ図です。
キューは、ラーメン屋の行列やスーパーマーケットの会計をイメージするとわかりやすいです。先に並んだ人から順番に案内されていきます。
コンピュータでキューは、プリンターの印刷待ち、処理の順番待ち等に使われます。
スタックとは?
スタック(Stack)は、コンピュータのデータ構造の1つです。
後に入れたデータから順番に取り出される構造で、「先入れ後出し」、「LIFO(Last In First Out)」とも呼ばれます。
スタックにデータを入れることをプッシュ(Push)といい、取り出すことをポップ(Pop)といいます。
以下は、スタックのイメージ図です。
スタックは、段ボール箱に入れる書類をイメージするとわかりやすいです。基本的には、後で入れた書類から取り出していきます。
コンピュータでスタックは、メソッド呼び出しの内部処理に使われます。
スタックに入れることができるデータ容量には上限があり、これを超えると「スタックオーバーフロー」になります。
プッシュをするとスタックの使用量が増え、ポップすることで使用量が減ります。
「再帰呼び出し」のようにメソッドを呼び続ける処理で、メソッドを抜ける処理が実行されない場合はプッシュをし続けることになるので「スタックオーバーフロー」となります。
以上です。