队列的优先级
function PriorityQuene() {
function QueneElement(element, priority) {
this.priority = priority
this.element = element
}
}
this.items = []
PriorityQuene.prototype.enquene = function (element, priority) {
var queneElment = new QueneElement(element, priority)
if (this.items.length == 0) {
this.items.push(queneElment)
} else {
for (var i = 0; i < items.length; i++) {
var added = false
if (queneElment.priority < this.items[i].priority) {
this.items.splice(i, 0, queneElment)
added = true
break
}
if (!added) {
this.items.push(queneElment)
}
}
}
}
this.item = []
// 删除第一个元素
PriorityQuene.prototype.dequeue = function () {
// return this.item.pop() pop是删除队列尾部的元素
return this.item.shift()
}
// 显示第一个元素
PriorityQuene.prototype.front = function () {
return this.item[0]
}
// 判断队列是否有参数
PriorityQuene.prototype.isEmpty = function () {
return this.item.length == 0
}
// 队列的长度
PriorityQuene.prototype.size = function () {
return this.item.length
}
// 将队列内的数据用字符串显示出来
PriorityQuene.prototype.toString = function () {
var result = ''
for (var i = 0; i < this.item.length; i++) {
result += this.item[i].element + '--' + this.item[i].priority + '--'
}
return result
}
var pq = new PriorityQuene()
pq.enquene = ('cba', 100)
pq.enquene = ('nab', 200)
pq.enquene = ('qwe', 333)
pq.enquene = ('asd', 444)
pq.enquene = ('zxc', 555)
console.log(pq);
alert(pq)