数据结构与算法 JavaScript实现 —— 队列

队列遵循FIFO(First in First out, 先进先出),就犹如在食堂排队打饭,先排队者先打到饭。

就如小明最先排队打饭,小明最先打到饭,同理,小绿最后。

那么利用JavaScript来实现队列,很简单。

    1.创建一个Queue类,在Queue里创建一个数组items,items是用于存储队列中元素的数据结构;

    2.定义enqueue方法用于向队列添加新的元素;

    3.定义dequeue方法用于从队列中移除项;(因为队列遵循先进先出,所以移除的是队列中排在最前面的元素)

    4.定义front方法用于返回队列中的最前面的项;

    5.定义isEmpty方法用于判断队列是否为空;

    6.定义clear方法用于清除队列;

    7.定义size方法用于返回队列的长度;

    8.定义print方法用于打印队列。

代码如下:

  

效果如下:

 

这样,就利用JavaScript实现了队列。

有了这个基础,我们可以做一个具有优先权的队列。就比如,我们坐高铁,哗啦啦的一堆人挤上去,总不可能不按票价来坐位置吧。当然要一等座者坐一等座,二等座者坐二等座。这时候就需要优先权了。

就如优先值越小,优先权越大。排队时候是以下这样的。

实际上是这样的:

 

那通过JavaScript怎么实现呢?

    1.定义一个数组items,用于存储队列中的项;

    2.QueueElement类用于存储项的值以及优先权;

    3.isEmpty方法用于返回队列的长度;

    4.enqueue方法用于向队列中添加新的元素;

        enqueue方法每调用一次,创建一个queueElement对象,如果如果队列为空,则直接添加。如果queueElement的优先值小于队列中的哪一项,则与哪一项调换位置,并使added为true。若queueElement的优先值比队列中的项都大,则added为false,直接添加到队列中。

 

    5.print方法用于打印队列;

代码如下:

效果如下:

 

参考自《学习JavaScript数据结构与算法》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值