使用 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 } ]正如您所见,元素是有序的。入列函数的工作原理类似于插入排序的插入。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP