Queue
- 队列就是用来形容一种先入先出的数据结构
普通队列
// 队列
class Queue {
constructor(){
this.queueList = [];
}
// 进队
push(val){
this.queueList.push(val);
return this.queueList;
}
// 出队
output(val){
this.queueList.shift();
return this.queueList;
}
// 清空队列中的所有任务
clear(){
this.queueList.length = 0;
}
}
优先级队列 就是插入的时候会有个优先级,来决定插入的位置
```javascript class QueueList { constructor(element,priority){
} } // 优先级队列 class Queue { constructor(){this.element = element;
this.priority = priority;
} // 入队 enqueue(element,priority){this.queueList = [];
} show(){// 实例化生成对象
var ele = new QueueList(element,priority);
// 判断入栈时 queuelist数组是否为空
if(this.queueList.length<1){
// 如果数组是空的话,那么直接往里面添加元素
this.queueList.push(ele);
}else{
// 设置标识
let flag = false;
// 如果不为空,添加新元素的时候需要判断优先级
this.queueList.forEach( (item,index) => {
if(ele.priority<item.priority){
// 如果要添加的元素优先级高的话,那么将其添加到对应的位置
// 并且结束循坏
this.queueList.splice(index,0,ele);
// 改变标识
flag = !flag;
break;
}
})
// 如果flag没有变化的话则证明要添加的元素优先级不高,添加到后面就行了
if(!flag){
this.queueList.push(ele);
}
}
} }// 显示当前队列
for(let key in this.queueList){
console.log(`${this.queueList[key].priority} --->v ${this.queueList[key].element}`);
}
module.exports = Queue
```