队列(first in first out )
队列是遵循first in first out 原则的一组有序队列,队列从尾部添加新元素,从顶部移除元素,最新添加的元素必须排在队列的末尾。
1.创建队列
我们通过创建自己类来创建队列,先从最基本的声明开始:
function Queue() {这里声明属性核对方法}
首先需要一个用于存储队列中元素的数据结构。我们可以使用数组,就像在上一章Stack类 中那样使用(你会发现Queue类和Stack类非常类似,只是添加和移除元素的原则不同)
2.优先队列
默认的Queue类和PriorityQueue类实现上的区别是,要向PriorityQueue添加元素,需 要创建一个特殊的元素(行{1})。这个元素包含了要添加到队列的元素(它可以是任意类型) 及其在队列中的优先级。
如果队列为空,可以直接将元素入列(行{2})。否则,就需要比较该元素与其他元素的优 先级。当找到一个比要添加的元素的priority值更大(优先级更低)的项时,就把新元素插入 到它之前(根据这个逻辑,对于其他优先级相同,但是先添加到队列的元素,我们同样遵循先进 先出的原则)。要做到这一点,我们可以用第2章学习过的JavaScript的array类的splice方法。 一旦找到priority值更大的元素,就插入新元素(行{3})并终止队列循环(行{4})。这样, 队列也就根据优先级排序了。
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
python虚拟环境安装
1、什么是python的虚拟环境 virtualenv是一个创建隔绝python环境的工具,virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。 优点 使不同应用开发环境独立 环境升级不影响其他使用,比如说你用的python2,建一个虚拟环境也是基于python2创建的,你的python升级为3,此时虚拟环境里的应用还是正常使用 它可以防止系统中出现包管理问题 2、安装 pip install virtualenv 如果安装较慢可采用豆瓣源安装。 命令如下: pip install -i https://pypi.douban.com/simple virtualenv 这条命令同样适用安装别的库。 安装之后看一下版本信息,同时检测一下是否安装成功。 C:\Users\19244>virtualenv --version 16.0.0 命令窗口出现版本信息。 3、接下来我们为一个工程创建一个虚拟环境 virtualenv 默认在当前目录下创建虚拟环境,如果我们不想在当前目录下创建虚拟环境,可以指定目录: C:\Users\19244&g...
-
下一篇
「python」正则
正则 基本都是参考:http://funhacks.net/2016/12/27/regular_expression/,部分小改动,感觉讲的蛮好的,做下记录。 正则表达式(regular expression)是可以匹配文本片段的模式。 字符 元字符 说明 正则表达式实例 匹配字符串 一般字符 匹配自身 py python . 匹配任意字符(换行符‘n’除外) p.t pyt \ 转义字符 python\.org python.org [...] 字符集,对应位置可以是字符集中任意字符。 可以逐个列出,也可以给出范围如[1234],也可以加入^取反,如[^1-4]表示不是1234的其他字符,所有的特殊字符字在字符集中都失去原来的特殊含义 p[xyz]t pxt,pyt,pzt 预定义字符 元字符 说明 正则表达式实例 匹配字符串 d 数字:[0-9] p\dy p3y D 数字:[^\d] p\Dy pay s 空白字符:[<空格>,t\r\n\f\v] p\sy p y S 非空白字符:[^\s] p\Sy pay w 单词字符:[a-zA-Z0-9] p\wy pay...
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码