JavaScriptでキューの先頭要素を覗き見る(peek)方法
キューのpeek操作とは
キューにおける「ピーク(peek)」とは、キューの先頭(ヘッド)にある値を取得する操作のことです。重要なポイントは、要素を取り出すdequeueと異なり、先頭の値を参照するだけではキューから削除されないという点です。
このpeek機能を実装すると、次のようになります。
peek関数の実装例
peek() {
if (isEmpty()) {
console.log("Queue Underflow!");
return;
}
return this.container[0];
}この実装では、まずisEmpty()を使ってキューが空かどうかをチェックしています。空の場合は「Queue Underflow!」というメッセージを表示して処理を終了し、要素が存在する場合のみ、配列の先頭であるthis.container[0]を返します。
動作確認
実際にこの関数が正しく動作するかどうかは、以下のコードで確認できます。
let q = new Queue(2); q.enqueue(3); q.enqueue(4); console.log(q.peek()); q.display();
実行結果
上記のコードを実行すると、以下のような出力が得られます。
3 [ 3, 4 ]
peek()とdequeue()の違い
実行結果を見ると、peek()を呼び出した後もdisplay()の出力には「[ 3, 4 ]」と両方の要素が残っていることがわかります。つまり、peek()は先頭の値を返すだけで、キューから要素を取り除かない点がdequeueとの大きな違いです。
- peek():先頭の値を取得するが、キューの内容は変更されない
- dequeue():先頭の値を取得すると同時に、キューからその要素が削除される
このように、キューの中身を壊さずに次に処理される要素を事前に確認したい場合に、peek操作が役立ちます。
-
JavaScriptでリンクリストから要素を削除する方法
リンクリストから要素を削除する基本の考え方 リンクリスト(連結リスト)から要素を削除する処理は非常にシンプルです。削除したいノードへの参照を失う(参照を切り離す)だけで実現できます。ただし、削除する位置によって処理が異なるため、次の3つのケースを考慮する必要があります。 ケース1:先頭(ヘッド)から削除する場合 先頭の要素を削除する場合は、head = head.next と代入するだけでOKです。これにより最初のノードへの参照が失われ、headは2番目のノードを指すようになります。 ケース2:末尾(テール)から削除する場合 末尾の要素を削除する場合は、最後から2番目のノードの node.ne
-
JavaScriptでキュー(Queue)を実装する方法を徹底解説
キュー(Queue)とは? キューは先入れ先出し(FIFO:First In First Out)というルールに従うデータ構造です。最初に追加した要素が最初に取り出される仕組みで、レジの待ち行列のように「並んだ順番どおりに処理したい」場面でよく使われます。 JavaScriptでは、配列とクラス(またはプロトタイプ)を組み合わせることで、簡単にキューを実装できます。キューの基本的な操作は次の3つです。 enqueue(エンキュー):キューの末尾に要素を追加する dequeue(デキュー):キューの先頭から要素を取り出す display(表示):キューの中身をすべて画面に表示する 以下は、H