JavaScript 队列(一)
队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。
队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。
在现实中,最常见的队列的例子就是排队。
function Queue(){//声明队列对象 var items = [];//队列的承载 //向队列尾部添加一个或多个新的项 this.enqueue = function(el){ items.push(el) } //删除队列头部第一个元素 this.dequeue = function(){ return items.shift(); } //返回队列中第一个元素 this.front = function(){ return items[0]; } //确定元素是否为空 为空则为true 不为空则为false this.isEmpty = function(){ return items.length === 0; } //返回队列长度 this.size = function(){ return items.length; } //打印队列 this.print = function(){ console.log(items.toString()) } }
使用队列类:
//实例化类 var queue = new Queue(); //验证是否为空 console.log(queue.isEmpty()) //true queue.enqueue('ma'); queue.enqueue('jack'); queue.print();//ma,jack console.log(queue.size())//2 queue.dequeue();//jack queue.print();//jack console.log(queue.size())//1
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
年薪30w+的软件开发工程师需要掌握的技能
现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很多东西才能成为软件开发人员,并且很多人不知道从哪里开始起步。如今新手进入软件开发的程序员月薪大约是1w左右,新手在成长为成熟的开发工程师的路上,要学习和提升的技能是非常之多。工作经验或许能成为你拿高薪的一个指标,但是,技能才是最终的标准。 这里我会尝试着具体说明那些在你追求成为软件开发人员的路上将让你受益的必要技术技能,年薪30w+的程序员需要掌握哪些技能。 一篇文章当然不能详尽说明作为软件开发者,你可能需要掌握的所有技术技能,但是我会列出最关键的一些技术技能。 编程语言 我认为从这一条开始说起是最合适的。 不懂编程语言,怎么能成为一个真正的程序员? 不过,关于选择哪种编程语言去学习可能并没有我们想得那么重要这一点,请允许我一笔带过。 相反,让我们谈一谈为什么我们要从一种编程语言开始,而不是试图去学习所有的东西。 许多新手程序员会试图一次性或在第一份工作之前学习几种编程语言,以便于有备无患。 虽然我认为你最终应该学会一种以上编程语言,但我不建议提前这样做,因为这只会导致混乱,并且会分散你需要学习的其他技能的精力。 相...
- 下一篇
JavaScript 优先队列
优先队列,实现方法有两种:设置优先级,然后再正确的位置添加元素;入列操作添加元素,然后按照优先级移除。 此处使用第一种方法。对数组或队列不熟悉的同学请移步。 JavaScript 数组 JavaScript 队列 function priorityQueue() { var items = []; //队列承载 function QueueElement(element, priority) { //创建特殊元素,包含要添加到队列的元素及其在队列的优先级 this.element = element; this.priority = priority; } //向队列尾部添加一个新的项 this.enqueue = function (element, priority) { var queueElement = new QueueElement(element, priority); //如果队列为空,则直接填入 if (this.isEmpty()) { items.push(queueElement) } else //否则 去找一个比要添加元素的优先级更低(priority值更...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Red5直播服务器,属于Java语言的直播服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16