JavaScriptでキュー(Queue)を自作して実装する方法
JavaScriptの配列(Array)はキューに必要な機能をすべて備えていますが、ここでは独自のQueueクラスを実装してみましょう。今回作成するクラスには、以下のメソッドを持たせます。
- enqueue(element):キューの末尾に要素を追加するメソッド
- dequeue():キューの先頭から要素を取り除くメソッド
- peek():キューの先頭にある要素を参照するメソッド
- isFull():キューが最大容量に達しているかどうかを判定するメソッド
- isEmpty():キューが空かどうかを判定するメソッド
- clear():すべての要素を削除するメソッド
- display():キューの中身をすべて表示するメソッド
まずは、キューの最大サイズを受け取るコンストラクタを持つシンプルなクラスと、後続のメソッド実装で役立つヘルパー関数から定義していきます。スタックを実装したときと同様に、キューも配列を使って実装します。
実装例
class Queue {
constructor(maxSize) {
// サイズが指定されていない場合はデフォルト値を設定
if (isNaN(maxSize)) {
maxSize = 10;
}
this.maxSize = maxSize;
// キューの値を格納する配列を初期化
this.container = [];
}
// 開発中に全ての値を表示するためのヘルパー関数
display() {
console.log(this.container);
}
// キューが空かどうかをチェック
isEmpty(){
return this.container.length === 0;
}
// キューが満杯かどうかをチェック
isFull() {
return this.container.length >= this.maxSize;
}
}さらに、キューが満杯か空かを確認するために、isFull と isEmpty の2つのメソッドも定義しました。
isFullメソッドは、container の長さが maxSize 以上であるかどうかを単純にチェックし、その結果を返します。これにより、最大容量を超えて要素が追加されるのを防ぐことができます。
isEmptyメソッドは、container のサイズが0であるかどうかを判定します。
これらのメソッドは、他の操作を定義する際に非常に役立ちます。以降で定義するメソッドは、すべてこのQueueクラスの中に追加していきます。
-
JavaScriptでカスタム画像スライダーを作成する方法【初心者向け解説付き】
Webサイトに動きを加える定番パーツのひとつが「画像スライダー(カルーセル)」です。ライブラリを使わなくても、HTML・CSS・JavaScriptの基本だけで、前後ボタンとナビゲーションドット付きのカスタムスライダーを簡単に作ることができます。この記事では、実際に動作する完全なサンプルコードを紹介しながら、それぞれの仕組みをわかりやすく解説します。完成形のサンプルコード以下のコードをそのままHTMLファイルとして保存し、ブラウザで開くと画像スライダーが動作します。<!DOCTYPE html> <html> <head> <meta name=&qu
-
JavaScriptでキュー(Queue)を実装する方法を徹底解説
キュー(Queue)とは? キューは先入れ先出し(FIFO:First In First Out)というルールに従うデータ構造です。最初に追加した要素が最初に取り出される仕組みで、レジの待ち行列のように「並んだ順番どおりに処理したい」場面でよく使われます。 JavaScriptでは、配列とクラス(またはプロトタイプ)を組み合わせることで、簡単にキューを実装できます。キューの基本的な操作は次の3つです。 enqueue(エンキュー):キューの末尾に要素を追加する dequeue(デキュー):キューの先頭から要素を取り出す display(表示):キューの中身をすべて画面に表示する 以下は、H