js模拟队列----小优先队列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js模拟队列----小优先队列相关的知识,希望对你有一定的参考价值。
队列:先进先出,后进后出
var Queue = (function(){ var item = new WeakMap(); class Queue{ constructor(){ item.set(this,[]); } enqueue(ele,priority){ var ls = item.get(this); var obj = { ele:ele, pro:priority }; var add = false; for(var i = 0; i < ls.length; i++ ){ if(priority < ls[i].pro){ ls.splice(i,0,obj); add = true; break; } } if(!add){ ls.push(obj); } } dequeue(){ var ls = item.get(this); return ls.shift(); } size(){ var ls = item.get(this); return ls.length; } front(){ var ls = item.get(this); return ls[0]; } isEmpty(){ var ls = item.get(this); return !ls.length; } print(){ var ls = item.get(this); for(var i = 0; i < ls.length; i++){ console.log(`${ls[i].ele}-${ls[i].pro}`); } } } return Queue; })(); var queue = new Queue(); queue.enqueue("b",2); queue.enqueue("a",1); queue.enqueue("c",3); queue.enqueue("d",4); queue.print();
以上是关于js模拟队列----小优先队列的主要内容,如果未能解决你的问题,请参考以下文章
C++ 初阶优先级队列(Priority_Queue)底层框架模拟实现