JavaScript队列原理与用法实例详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript队列原理与用法实例详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6890字,纯文字阅读大概需要10分钟。
内容图文
![JavaScript队列原理与用法实例详解](/upload/InfoBanner/zyjiaocheng/298/0882cbdd397d446a8847a4f361522db0.jpg)
一:对队列的操作
队列有2种主要的操作,向队尾中插入新元素enqueue()方法和删除队列中的队首的元素的dequeue()方法,另外我们还有一个读取队头的元素,这个方法我们可以叫front()方法。该方法返回队头元素等等方法。
看到如上描述,我们很多人可能会想到数组,数组里面也有2个方法和上面的方法功能类似,数组中push()
方法也是往数组后面加入新元素,数组中shift()
方法则可以删除数组里面的第一个元素。如下代码:
下面我们可以使用上面的数组中的push()
和shift()
的2个方法来封装我们的队列Queue类;
1. 我们可以先定义一个构造函数Queue类,如下:
如上:this.dataStore = [];
空数组时存储队列中所有的元素的。
2. 向队尾中添加一个元素方法如下:
3. 删除队首的元素如下:
4. 读取队首的元素如下:
5. 读取队尾的元素如下:
6. 显示队列中的所有元素
7. 判断队列是否为空如下:
下面是完整的JS代码如下:
我们现在可以对以上代码测试下:如下:
二:使用队列对数据进行排序
比如对于 0 ~ 99 的数字进行排序,原理是:先对个位上的数字进行排序一次,然后对十位上的数字再进行排序一次。每个数字根据对应位上的数值被分在不同的盒子里面,然后对于个位上的数字采用除余数的方法,对于10位上的数字采用除法的方法,那么这种排序叫做 “基数排序”. 但是它不是最快的排序方法,但是它描述了一些有趣的队列使用方法。
比如如下数组:
1. 经过基数排序--个位排序后,数字被分配在不同的盒子里面。(在JS里面,我们可以分配在不同的队列Queue实例类里面)。如下
根据盒子的顺序,对数字第一次个位排序后结果如下:
2. 然后根据十位上的数值再将上次排序后的结果分配到不同的盒子中。如下:
最后,将盒子中的数字取出,组成一个新的列表,该列表即为排序好的数字。如下:
即可生成如下:
如上使用队列列表盒子,可以实现这个算法,我们需要10个队列,每个队列对应一个数字,将所有队列保存在一个数组中,使用取余和除法操作决定个位和十位。算法的剩余部分将数字加入相应的队列,根据个位数值进行重新排序,然后再根据十位上的数值进行排序,结果加入排序好的数字。
下面根据个位或十位上的数值,将数字分配到相应队列的函数。
下面是从队列中收集数字的函数如下:
由于上面省略了很多步骤,可能描述的不是很清楚,我们现在先来看看流程图,结合流程图,最后结合JS的所有代码就可以理解"基数排序的"基本原理了;下面我们可以看看如下的流程图;
最后是所有的JS代码如下:
下面的是对 "基数排序的" JS代码进行测试;如下代码:
相关推荐:
php中队列原理以及写文件的图文代码详解
详解JavaScript队列函数和异步执行
JavaScript队列函数和异步执行详解
以上就是JavaScript队列原理与用法实例详解的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的JavaScript队列原理与用法实例详解全部内容,希望文章能够帮你解决JavaScript队列原理与用法实例详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。