博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列(first in first out )
阅读量:7059 次
发布时间:2019-06-28

本文共 601 字,大约阅读时间需要 2 分钟。

队列是遵循first in first out 原则的一组有序队列,队列从尾部添加新元素,从顶部移除元素,最新添加的元素必须排在队列的末尾。

1.创建队列

我们通过创建自己类来创建队列,先从最基本的声明开始:

function Queue() {这里声明属性核对方法}
首先需要一个用于存储队列中元素的数据结构。我们可以使用数组,就像在上一章Stack类 中那样使用(你会发现Queue类和Stack类非常类似,只是添加和移除元素的原则不同)

img_99339994cc010ffbed9ced44c36df394.png
完整的Queue类

2.优先队列

img_c9c37826fbbaf95394e265a32cd7e6fc.png
优先队列

默认的Queue类和PriorityQueue类实现上的区别是,要向PriorityQueue添加元素,需 要创建一个特殊的元素(行{1})。这个元素包含了要添加到队列的元素(它可以是任意类型) 及其在队列中的优先级。

如果队列为空,可以直接将元素入列(行{2})。否则,就需要比较该元素与其他元素的优 先级。当找到一个比要添加的元素的priority值更大(优先级更低)的项时,就把新元素插入 到它之前(根据这个逻辑,对于其他优先级相同,但是先添加到队列的元素,我们同样遵循先进 先出的原则)。要做到这一点,我们可以用第2章学习过的JavaScript的array类的splice方法。 一旦找到priority值更大的元素,就插入新元素(行{3})并终止队列循环(行{4})。这样, 队列也就根据优先级排序了。

转载地址:http://fegol.baihongyu.com/

你可能感兴趣的文章
discuz抓取内容换行符<br />不能替换问题
查看>>
使用scrapy 0.24 制作的小说爬虫
查看>>
how it works
查看>>
今天就遇到了一个:用户回调期间遇到未经处理的异常
查看>>
Python下发布web service(三):web.py简介及使用
查看>>
学习window编程1
查看>>
新浪微博平台架构师洪小军:新浪微博稳定性经验谈
查看>>
牛蔚-移动互联网下的自媒体
查看>>
拥抱变化 把握未来——“移动”电商营销新时代
查看>>
2014年全球最具影响力游戏市场报告Top 10
查看>>
OHAttributedLabel
查看>>
MyEclipse中文教程:定制myeclipse
查看>>
maven常用命令
查看>>
导入工程出错系列
查看>>
MyCnCart图片水印
查看>>
订单快递单号及查询快递进度
查看>>
Delegate & 通知 & block
查看>>
nvm
查看>>
第二章:java基本功之对象与内存控制
查看>>
mac配置java环境
查看>>