PriorityQueue的push方法用于添加一个新元素到队列中。
queue.push(element)
element
: 要添加到队列中的元素。无返回值。
const queue = new PriorityQueue();
queue.push(10);
queue.push(5);
queue.push(25);
console.log(queue.items); // 输出:[5, 10, 25]
push(element) {
// 创建一个新元素对象
const node = new Node(element);
let current;
// 空队列时直接添加到队列首位
if (this.isEmpty()) {
this.items.push(node);
} else {
current = this.items.length - 1;
// 依次与队列中的元素比较,直到找到比新元素小、或者当前队列中的元素位置已经移动到了队列的首位
while (current >= 0 && node.priority < this.items[current].priority) {
this.items[current + 1] = this.items[current];
current--;
}
// 将新元素插入到空出来的位置
this.items[current + 1] = node;
}
}
无异常抛出。