资讯专栏INFORMATION COLUMN

前端面试总结--数据结构与算法三

freewolf / 3124人阅读

摘要:队列队列是遵循先进先出原则的一组有序的项。最新添加的元素必须排在队列的末尾。创建队列首先需要一个用于存储队列中元素的数据结果。队列的方法向队列尾部添加一个或多个的项。返回队列包含的元素个数。

队列

队列是遵循FIFO(First In First Out, 先进先出)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。

创建队列

首先需要一个用于存储队列中元素的数据结果。

function Queue(){
    var items = [];
}

队列的方法
enqueue(element) -- 向队列尾部添加一个或多个的项。
dequeue() -- 移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。
front() -- 返回队列中第一个元素,也就是最先被移除的元素。队列不坐任何编订。
isEmpty()--队列是否包含元素。
size() -- 返回队列包含的元素个数。

完整的Queue代码
function Queue(){
    var items = ();
    
    this.enqueue = function(element){
        items.push(element);
    }
    
    this.dequque = function(){
        items.shift();
    }
    
    this.font = function(){
        return items[0];
    }
    
    this.isEmpty = function(){
        return items.length==0;
    }
    
    this.size = function(){
        return item.length;
    }
}
优先队列

优先队列就是元素的添加和移除是基于一个优先级的。在现实中的例子就是很多时候机场登机的顺序,是头等舱的乘客和商务舱的乘客优先级高于经济舱的乘客。可以先登机。
实现一个优先队列,有两种选项:设置优先级,然后再正确的位置添加元素;或者用入列操作添加元素,然后按照优先级移除它们。我们将会在正确的位置添加元素。

function PriorityQueue(){
    var items = ();
    function QueueElement(element, priority){
        this.element = element;
        this.proiority = priority;
    }
    
    this.enqueue = function(element, priority){
        var queueElement = new QueueElement(element, priority);
        if(this.isEmpty()){
            item.push(queueElement);
        } else {
            var added = false;
            for(var i=0;i

参考书籍:Learning Javascript Data Structures and Algorithms

推荐一个找vue,angular组件的轮子工厂

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88423.html

相关文章

  • 18年求职面经及总结

    摘要:年求职面经及总结我的求职之路差不多走到尽头了感觉真是精疲力尽了把这大半年的经历和面试总结写下来希望能给和我一样在求职路上煎熬的人一点帮助先说背景微电子科学与工程专业学过两门和相关的课程语言和单片机这个专业的唯一好处就是大部分人并不知道这个专 18年求职面经及总结 我的求职之路差不多走到尽头了,感觉真是精疲力尽了.把这大半年的经历和面试总结写下来,希望能给和我一样在求职路上煎熬的人一点帮...

    zhangwang 评论0 收藏0
  • 18年求职面经及总结

    摘要:年求职面经及总结我的求职之路差不多走到尽头了感觉真是精疲力尽了把这大半年的经历和面试总结写下来希望能给和我一样在求职路上煎熬的人一点帮助先说背景微电子科学与工程专业学过两门和相关的课程语言和单片机这个专业的唯一好处就是大部分人并不知道这个专 18年求职面经及总结 我的求职之路差不多走到尽头了,感觉真是精疲力尽了.把这大半年的经历和面试总结写下来,希望能给和我一样在求职路上煎熬的人一点帮...

    fjcgreat 评论0 收藏0
  • 18年求职面经及总结

    摘要:年求职面经及总结我的求职之路差不多走到尽头了感觉真是精疲力尽了把这大半年的经历和面试总结写下来希望能给和我一样在求职路上煎熬的人一点帮助先说背景微电子科学与工程专业学过两门和相关的课程语言和单片机这个专业的唯一好处就是大部分人并不知道这个专 18年求职面经及总结 我的求职之路差不多走到尽头了,感觉真是精疲力尽了.把这大半年的经历和面试总结写下来,希望能给和我一样在求职路上煎熬的人一点帮...

    Ali_ 评论0 收藏0
  • 前端面试总结--数据结构算法

    摘要:链表前端的面试中,链表还是经常会被问到。这种数据结构非常方便,提供了便利店语法来访问它的元素。参考书籍推荐一个找组件的轮子工厂前端面试总结数据结构与算法一前端面试总结数据结构与算法二前端面试总结数据结构与算法三 链表 前端的面试中,链表还是经常会被问到。所以熟悉链表的结果以及链表操作的方法还是很重要的。说道存储多个元素,数组可能是最常用的数据结构。这种数据结构非常方便,提供了便利店[]...

    superPershing 评论0 收藏0
  • 前端面试总结--数据结构算法

    摘要:结构的实例的方法,用于对每个成员执行某种操作,没有返回值。参考和数据结构推荐一个找组件的轮子工厂前端面试总结数据结构与算法一前端面试总结数据结构与算法二前端面试总结数据结构与算法三前端面试总结数据结构与算法四 集合 集合是由一组无序且唯一的项组成。这个数据结构使用了与有限集合相同的数学概念。 创建一个集合 function Set(){ var items = {}; } ...

    xuexiangjys 评论0 收藏0

发表评论

0条评论

freewolf

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<