//优先级队列实现
function PriorityQueue() {
//函数内部类
function StorageElement(element, priority) {
this.element = element
this.priority = priority
}
//属性
this.items = []
//队列的插入 和 追加
PriorityQueue.prototype.enqueue = function (element, priority) {
let storageElement = new StorageElement(element, priority)
//如果队列中没有element的话直接push到 数组中
if (this.items.length === 0) {
this.items.push(storageElement)
} else {
let isTrue = false
//遍历items 数组 是splice还是push
for (let i = 0
// 比较数组中priority的优先级
if (this.items[i].priority > storageElement.priority) {
this.items.splice(i, 0, storageElement)
isTrue = true
break
}
}
if (!isTrue) {
this.items.push(storageElement)
}
}
}
}
let priorityQueue = new PriorityQueue()