首页 > Web开发 > 详细

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

时间:2018-06-19 11:32:21      阅读:175      评论:0      收藏:0      [点我收藏+]

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!