C++のキューの実装方法は何ですか?
C++のキューは、配列とリストの2つの方法で実装することができます。
- 配列を使用した実装:キューの要素を配列に保存し、フロントとリアの2つのポインタを使用して、キューの前部と後部を指す。キューが空の場合、フロントとリアは同じ位置を指す。要素を追加すると、その要素をリアが指す位置に追加し、リアを1つ進める。要素を取り出すと、フロントを1つ進め、フロントが指す要素を返す。キューが満員の場合、要素を追加できない。
- リンクリストを使用したキューの実装では、各ノードにはデータ要素と次のノードへのポインタが含まれます。frontとrearという2つのポインタを使用して、frontはキューの先頭、rearは末尾を指します。キューが空の場合、frontとrearは両方とも空を指します。要素を追加するときは、新しいノードを作成し、そのノードをrearが指すノードの次につなぎ、rearを新しいノードを指すようにします。要素を削除するときは、frontが指すノードを削除し、frontを次のノードを指すようにします。リンクリストを使用したキューの実装には固定されたサイズの制限はありません。
配列あるいはリストを使用した実装に関わらず、キューの操作にはenqueue(エンキュー)、dequeue(デキュー)、isEmpty(空かどうか判断)などが含まれます。