js队列实现优先级插入的方法

本文介绍如何使用JavaScript实现一个优先队列,通过实例演示了如何根据优先级对元素进行排序,如医院场景下急救病人的优先治疗。文章提供了完整的代码示例。

队列是先进先出.

在医院中排队的时候就是一个队列,最先排队的人,会先获得医生的治疗,这就是先进先出的队列

但是也有例外,当医院来了一位急救病人的时候,这个队列就需要做一些改进,改为最小优先队列,这样可以让急救病人首先获得医生的救治,从而保住性命.

现在用js来实现一个优先队列

        //优先队列
         function PriorityQueue(){
            var item = [];
            function QueueElement(element, priority){
                this.element = element;
                this.priority = priority;
            }

            this.enqueue = function(element , priority){
                var queueElement = new QueueElement(element,priority);

                if(item.length == 0){
                    item.push(queueElement);
                }else{
                    var added = false;
                    for(var i = 0; i<item.length; i++){
                        if(queueElement.priority < item[i].priority){
                            item.splice(i,0,queueElement);
                            added = true;
                            break;
                        }
                    }

                    if(!added){
                        item.push(queueElement);
                    }
                }
            };

            this.print = function(){
                return item;
            }
        }


         var priorityqueue = new PriorityQueue();
        console.log(priorityqueue);
        priorityqueue.enqueue('感冒病人',4);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('流感病人',3);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('急救病人1',1);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('急救病人2',1);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('感冒病人2',4);

 

博客地址:http://blog.gaokai.fun/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值