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模拟队列----小优先队列的主要内容,如果未能解决你的问题,请参考以下文章

# Java 常用代码片段

C++ 初阶优先级队列(Priority_Queue)底层框架模拟实现

C++ 初阶优先级队列(Priority_Queue)底层框架模拟实现

POJ 1442 Black Box(优先队列)

STL优先级队列剖析及模拟实现

幸福列车(优先队列模拟)