JavaScriptでキューから要素を削除する方法(dequeueの実装)
キューから要素をデキュー(dequeue)するととは、キューの先頭(ヘッド)から要素を取り除くことを意味します。本記事では、コンテナ配列の先頭をキューのヘッドとして扱い、すべての操作をこれを基準に行います。

dequeue関数の実装
キューの先頭から要素を取り出すpop処理は、以下のように実装できます。
dequeue() {
// キューが空かどうかをチェック
if (this.isEmpty()) {
console.log("Queue Underflow!");
return;
}
return this.container.shift();
}ここでは配列の shift() メソッドを使用しています。これは配列の先頭要素を取り除き、その値を返すメソッドです。また、キューが空の状態でデキューを試みた場合に備えて、isEmpty() によるアンダーフロー(underflow)チェックを行っています。空のキューから要素を取り出そうとした場合は「Queue Underflow!」というメッセージを出力し、処理を安全に終了させます。
動作確認
この関数が正しく動作しているかは、次のコードで確認できます。
let q = new Queue(2); q.dequeue(); q.enqueue(3); q.enqueue(4); console.log(q.dequeue()); q.display();
実行結果
上記のコードを実行すると、以下の出力が得られます。
Queue Underflow! 3 [ 4 ]
解説
出力結果を見てみましょう。
- 最初の
q.dequeue()では、まだ何も追加されていないため「Queue Underflow!」が出力されます。 - その後、
3が先にキューへ入り、続いて4が追加されます。 - 再度
q.dequeue()を呼び出すと、キューの先頭にある3が取り除かれて返されます。 - 最後に表示されるキューの中身は
[ 4 ]のみです。
これはキューの基本的な性質であるFIFO(First In, First Out: 先入れ先出し)の動作そのものです。もし先頭への挿入・末尾からの削除の方が直感的に感じられる場合は、その逆の構成で実装することも可能ですが、本記事ではこの形式を採用して進めます。
-
JavaScriptで双方向連結リストの要素を削除する方法
双方向連結リストから要素を削除する仕組み連結リストからの要素削除は非常にシンプルです。やるべきことは「削除したいノードへの参照を失わせる」こと、つまり対象ノードをリンクのチェーンから切り離すだけです。ただし、削除する位置によって処理が異なるため、次の3つのケースを考慮する必要があります。先頭(head)の要素を削除する: head = head.next と代入するだけで、先頭ノードへの参照は失われ、headは2番目の要素を指すようになります。このとき、新しいheadのprevをnullに設定し、前方向のリンクも忘れずに切っておきます。末尾(tail)の要素を削除する: 後ろから2番目のノード
-
JavaScriptのsplice()メソッドで配列から要素を削除する方法【コード例付き】
JavaScriptのsplice()メソッドを使うと、配列から指定した位置の要素を簡単に削除できます。このメソッドは元の配列を直接変更する点が特徴です。 splice()メソッドの基本構文 arr.splice(start, deleteCount) start: 削除を開始するインデックス位置(0から始まります) deleteCount: 削除する要素の数。省略すると、開始位置から配列の末尾までがすべて削除されます 以下は、splice()メソッドを使用して配列の1番目から5番目の間の要素(インデックス1〜4)を削除するサンプルコードです。 コード例 <!DOCTYPE html