基础数据结构和算法---优先队列

24,353 阅读1分钟

元素的添加和移除是基于优先级的。比如机场登机的顺序。头等舱和商务舱乘客的优先级要高于经济舱乘客。在有些国家,老年人和孕妇登机时也享有高于其他乘客的优先级。

    function PriorityQueue() {
        let items = [];
        function QueueElement(element,priority) {
            this.element = element;
            this.priority = priority;
        }
        this.enqueue = function(element,priority) {
            let queueElement = new QueueElement(element,priority);
            
            let added = false;
            for(let i = 0;i<items.length;i++) {
                if(queueElement.priority < items[i].priority) {
                    items.splice(i,0,queueElement);
                    added = true;
                    break;
                }
            }
            if(!added) {
                items.push(queueElement);
            }
        };
        this.print = function(){
            for(let i = 0;i<items.length;i++) {
                console.log(`${items[i].element} - ${items[i].priority}`)
            }
        }
    }