码迷,mamicode.com
首页 > Web开发 > 详细

js模拟队列----小优先队列

时间:2018-06-19 11:49:47      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:先进先出   queue   priority   add   push   fun   return   function   log   

队列:先进先出,后进后出

		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模拟队列----小优先队列

标签:先进先出   queue   priority   add   push   fun   return   function   log   

原文地址:https://www.cnblogs.com/muamaker/p/9197589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!