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

Javascriptを使用した優先キューの作成


クラスには次の関数があります-

  • enqueue(element):キューに要素を追加する関数。
  • dequeue():キューから要素を削除する関数。
  • peek():キューの先頭から要素を返します。
  • isFull():キューの要素制限に達したかどうかを確認します。
  • isEmpty():キューが空かどうかを確認します。
  • clear():すべての要素を削除します。
  • display():配列のすべての内容を表示します

キューの最大サイズを取得するコンストラクターと、このクラスの他の関数を実装するときに役立つヘルパー関数を使用して、単純なクラスを定義することから始めましょう。また、PriorityQueueクラスのプロトタイプの一部として、各ノードに関する優先度とデータを持つ別の構造を定義する必要があります。スタックを実装したので、配列を使用して優先キューも実装します。

class PriorityQueue {
   constructor(maxSize) {
      // Set default max size if not provided
      if (isNaN(maxSize)) {
         maxSize = 10;
      }
      this.maxSize = maxSize;
      // Init an array that'll contain the queue values.
      this.container = [];
   }
   // Helper function to display all values while developing
   display() {
      console.log(this.container);
   }
   // Checks if queue is empty
   isEmpty() {
      return this.container.length === 0;
   }
   // checks if queue is full
   isFull() {
      return this.container.length >= this.maxSize;
   }
}
// Create an inner class that we'll use to create new nodes in the queue
// Each element has some data and a priority
PriorityQueue.prototype.Element = class {
   constructor (data, priority) {
      this.data = data; this.priority = priority;
   }
}

また、スタックがいっぱいか空かを確認するために、isFullとisEmptyの2つの関数を定義しました。

isFull関数は、コンテナの長さがmaxSize以上であるかどうかをチェックし、それに応じて戻ります。

isEmpty関数は、コンテナーのサイズが0であるかどうかをチェックします。

これらは、他の操作を定義するときに役立ちます。この時点から定義する関数はすべてPriorityQueueクラスに入ります。


  1. JavaScriptでのキューの実装

    以下は、JavaScriptでキューを実装するためのコードです。 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>  

  2. Cのリンクリストを使用した優先キュー

    データと優先度は整数値として与えられ、タスクは与えられた優先度に従ってリンクリストを作成し、結果を表示することです。 キューはFIFOデータ構造であり、最初に挿入された要素が最初に削除されます。優先度付きキューは、優先度に応じて要素を挿入または削除できるキューの一種です。キュー、スタック、またはリンクリストのデータ構造を使用して実装できます。優先キューは、次のルールに従って実装されます- 優先度が最も高いデータまたは要素は、優先度が最も低いデータまたは要素の前に実行されます。 2つの要素の優先度が、順番に実行される要素と同じである場合、それらはリストに追加されます。 優先度付きキュー