使用JavaScript将元素添加到PriorityQueue

将元素排队到PriorityQueue意味着按照元素的优先级将它们添加到数组中。我们认为更高的数字是更高的优先级。我们将遍历容器,直到找到较低优先级,然后在其中添加元素。如果没有,那么我们将其推入容器的末端。

请注意,我们正在创建具有数据和优先级的element对象。因此我们可以实现如下的入队功能-  

示例

enqueue(data, priority) {

   //检查队列是否已满

   if (this.isFull()) {

      console.log("队列溢出!");

      return;

   }

   let currElem = new this.Element(data, priority);

   let addedFlag = false;

   //由于我们要添加元素以结束,因此我们将其推送。

   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 } ]

如您所见,元素按排序顺序排列。入队功能的工作类似于插入排序的插入。

以上是 使用JavaScript将元素添加到PriorityQueue 的全部内容, 来源链接: utcz.com/z/348997.html

回到顶部