JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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操作が役立ちます。


  1. JavaScriptでリンクリストから要素を削除する方法

    リンクリストから要素を削除する基本の考え方 リンクリスト(連結リスト)から要素を削除する処理は非常にシンプルです。削除したいノードへの参照を失う(参照を切り離す)だけで実現できます。ただし、削除する位置によって処理が異なるため、次の3つのケースを考慮する必要があります。 ケース1:先頭(ヘッド)から削除する場合 先頭の要素を削除する場合は、head = head.next と代入するだけでOKです。これにより最初のノードへの参照が失われ、headは2番目のノードを指すようになります。 ケース2:末尾(テール)から削除する場合 末尾の要素を削除する場合は、最後から2番目のノードの node.ne

  2. JavaScriptでキュー(Queue)を実装する方法を徹底解説

    キュー(Queue)とは? キューは先入れ先出し(FIFO:First In First Out)というルールに従うデータ構造です。最初に追加した要素が最初に取り出される仕組みで、レジの待ち行列のように「並んだ順番どおりに処理したい」場面でよく使われます。 JavaScriptでは、配列とクラス(またはプロトタイプ)を組み合わせることで、簡単にキューを実装できます。キューの基本的な操作は次の3つです。 enqueue(エンキュー):キューの末尾に要素を追加する dequeue(デキュー):キューの先頭から要素を取り出す display(表示):キューの中身をすべて画面に表示する 以下は、H