利用数组模拟队列数据结构,实现根据优先级,往队列里面新增数据。
默认权限越大数字越小:
<script>
function PriorityQueue() {
this.items = []
}
function QueueElement(element, priority) {
this.element = element
this.priority = priority
}
PriorityQueue.prototype.addQueue = function (element, priority) {
var queueElement = new QueueElement(element, priority)
//判断队列是否为空
if (this.items.length === 0) {
this.items.push(queueElement)
} else {
var isAdd = false
for (var i = 0; i < this.items.length; i++) {
if (queueElement.priority < this.items[i].priority) {
this.items.splice(i, 0, queueElement)
isAdd = true
break
}
}
if (!isAdd) {
this.items.push(queueElement)
}
}
}
var pq = new PriorityQueue()
pq.addQueue('a', 1)
pq.addQueue('d', 4)
pq.addQueue('e', 5)
pq.addQueue('c', 3)
pq.addQueue('f', 6)
pq.addQueue('b', 2)
console.log(pq.items)
</script>
欢迎提出问题和交流!!!