美文网首页前端技术讨论
javaScript数据结构--优先队列

javaScript数据结构--优先队列

作者: 安然_她 | 来源:发表于2019-05-13 15:09 被阅读0次

元素的添加是基于优先级的。

function PriorityQueue() {

    var items = [];

    function QueueElement(element, priority) {

        this.element = element;

        this.priority = priority;

    }

    this.enqueue = function(element, priority) {

        const queueElement = new QueueElement(element, priority);

        if(this.isEmpty()) {

            items.push(queueElement);

        }else {

            var isAdded = false;

            for(let i=0; i< this.size(); i++) {

                const ele = items[i];

                if(ele.priority > priority) {

                    items.splice(i, 0, queueElement);

                    isAdded = true;

                    break;

                }

            }

            if(!isAdded) {

                items.push(queueElement);

            }

        }

    }

    this.dequeue = function() {

        return items.shift();

    }

    this.front = function() {

        return items[0];

    }

    this.size = function() {

        return items.length;

    }

    this.isEmpty = function() {

        return items.length === 0

    }

    this.print = function() {

        console.log(items.toString);

    }

}

const priorityQueue = new PriorityQueue();

priorityQueue.enqueue('a', 2);

priorityQueue.enqueue('b', 3);

priorityQueue.enqueue('c', 1);

priorityQueue.enqueue('d', 1);

console.log(priorityQueue.front()); // QueueElement { element: 'c', priority: 1 }

priorityQueue.dequeue();

console.log(priorityQueue.front()); //  QueueElement { element: 'd', priority: 1 }

相关文章

  • 看图说话数据结构之二项队列(优先队列)——原理解析

    数据结构之二叉堆(优先队列)——原理解析,数据结构之二叉堆(优先队列)——java实现,数据结构之左式堆(优先队列...

  • GO语言实现 一 堆与优先队列

    堆与优先队列 优先队列 之前我们讲过队列这种数据结构,队列的特点是先进先出,那什么是优先队列呢?一般来说,优先队列...

  • JavaScript数据结构-优先队列

    前面学习过队列这种数据结构,该数据结构的特点是先进先出,但有时候会出现特殊情况,比如在我们排队买票时,会有军人优先...

  • javaScript数据结构--优先队列

    元素的添加是基于优先级的。 function PriorityQueue() { var items = []...

  • 优先队列(堆)

    优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当...

  • 二叉堆应用二:优先队列

    优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。删...

  • 数据结构(三)-- 优先队列

    什么是优先队列? 我们在前几篇文章中学习过了“队列”这种数据结构。那么优先队列和普通队列有什么区别的呢?普通队列的...

  • PriorityQueue原理与最简实现[kotlin]

    什么是优先队列? 优先队列是一种能按照数据的优先级,在输出的时候能依次输出的一种数据结构。 优先队列的核心方法 *...

  • 堆排序

    1. 优先队列 说堆排序之前,我们要从一种特殊的数据结构——优先队列说起。优先队列最大的两个特征:插入元素和删除最...

  • 优先队列--底层是二叉堆

    1.什么是优先队列?普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予...

网友评论

    本文标题:javaScript数据结构--优先队列

    本文链接:https://www.haomeiwen.com/subject/tsolaqtx.html