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

Javascriptを使用してPriorityQueueに要素を追加する


PriorityQueueに要素をエンキューするということは、要素の優先度の順に要素を配列に追加することを意味します。数値が大きいほど優先度が高いと見なされます。優先度の低いものが見つかるまでコンテナをループし、そこに要素を追加します。そうでない場合は、コンテナの最後にプッシュします。

データと優先度を使用して要素オブジェクトを作成していることに注意してください。したがって、次のようにエンキュー関数を実装できます-

enqueue(data, priority) {
   // Check if Queue is full
   if (this.isFull()) {
      console.log("Queue Overflow!");
      return;
   }
   let currElem = new this.Element(data, priority);
   let addedFlag = false;
   // Since we want to add elements to end, we'll just push them.
   for(let i = 0; i < this.container.length; i ++) {
       if(currElem.priority < this.container[i].priority) {
          this.container.splice(i, 0, currElem);
         addedFlag = true; break;
      }
   }
   if (!addedFlag) {
      this.container.push(currElem);
   }
}

を使用して、この機能が正常に機能しているかどうかを確認できます。

let q = new PriorityQueue(4);
q.enqueue("Hello", 3);
q.enqueue("World", 2);
q.enqueue("Foo", 8);
q.display();

出力

これにより、出力が得られます-

[ { data: 'World', priority: 2 },
  { data: 'Hello', priority: 3 },
  { data: 'Foo', priority: 8 } ]

ご覧のとおり、要素は並べ替えられた順序になっています。エンキュー機能は、挿入ソートの挿入のように機能します。


  1. Javascriptを使用してリンクリストに要素を追加する

    リンクリストの特定の位置にデータを挿入する関数insert(data、position)を作成する必要があります。次の手順を実行します- 新しいノードを作成する リストが空かどうかを確認します。その後、ノードをヘッドに追加して戻ります。 そうでない場合は、currElemを使用して挿入する位置まで繰り返します。 currElemをcurrElem.nextと等しくすることにより、リンクリストを繰り返します。 次に、ノードがリスト内の次のノードを指すようにします。これは、リストの残りの部分を追跡するためです。 最後に、currElemからリストの残りの部分へのリンクを解除し、作成したノードを指

  2. 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>