使用 JavaScript 向优先级队列添加元素


为优先级队列加入元素是指按元素的优先级顺序将它们添加到数组中。我们将认为较高数字是较高的优先级。我们将遍历容器,直到找到较低优先级,然后在那里添加元素。如果没有,那么我们将其推送到容器的末尾。

请注意,我们正在使用数据和优先级创建元素对象。因此,我们可以将入列函数实现如下 -  

示例

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

正如您所见,元素是有序的。入列函数的工作原理类似于插入排序的插入。

更新日期: 2020 年 6 月 15 日

156 次浏览

开启你的 职业生涯

完成课程,获得认证

开始学习
广告
© . All rights reserved.