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
```
