javaScript实现一个队列的方法


Posted in Javascript onJuly 14, 2020

1.队列是遵循先进先出(FIFO)原则的一组有序的项,队列在尾部添加元素,并从顶部移除元素,最新添加的元素必须排在队列的末尾。生活中常见的例子如排队等。

2.创建一个队列类

class Queue{
  constructor(){
    this.count = 0;//记录队列的数量
    this.lowestCount = 0;//记录当前队列头部的位置
    this.items = [];//用来存储元素。
  }
}

3.添加元素

enqueue(element){
    this.items[this.count] = element;
    this.count++;
  }

4.删除元素(只删除队列头部)

dequeue(){
    if(this.isEmpty()){
      return 'queue is null';
    }
    let resulte = this.items[this.lowestCount];
    delete this.items[this.lowestCount];
    this.lowestCount++;
    return resulte;
  }

5.查看队列头部元素

peek(){
    return this.items[this.lowestCount];
  }

6.判断队列是否为空

isEmpty(){
    return this.count - this.lowestCount === 0;
  }

7.清除队列的元素

clear(){
    this.count = 0;
    this.lowestCount = 0;
    this.items = [];
  }

8.查看队列的长度

size(){
    return this.count - this.lowestCount;
  }

9.查看队列的所有内容

toString(){
    if(this.isEmpty())return "queue is null";
    let objString = this.items[this.lowestCount];
    for(let i = this.lowestCount+1; i < this.count;i++){
      objString = `${objString},${this.items[i]}`;
    }
    return objString;
  }

10.完整代码

class Queue{
  constructor(){
    this.count = 0;//记录队列的数量
    this.lowestCount = 0;//记录当前队列顶部的位置
    this.items = [];//用来存储元素。
  }
  enqueue(element){
    this.items[this.count] = element;
    this.count++;
  }
  dequeue(){
    if(this.isEmpty()){
      return 'queue is null';
    }
    let resulte = this.items[this.lowestCount];
    delete this.items[this.lowestCount];
    this.lowestCount++;
    return resulte;
  }
  peek(){
    return this.items[this.lowestCount];
  }
  isEmpty(){
    return this.count - this.lowestCount === 0;
  }
  size(){
    return this.count - this.lowestCount;
  }
  clear(){
    this.count = 0;
    this.lowestCount = 0;
    this.items = [];
  }
  toString(){
    if(this.isEmpty())return "queue is null";
    let objString = this.items[this.lowestCount];
    for(let i = this.lowestCount+1; i < this.count;i++){
      objString = `${objString},${this.items[i]}`;
    }
    return objString;
  }
}

11.运行结果

javaScript实现一个队列的方法

以上就是javaScript实现一个队列的方法的详细内容,更多关于javaScript实现一个队列的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
BootStrap使用popover插件实现鼠标经过显示并保持显示框
Jun 23 Javascript
Node.js  事件循环详解及实例
Aug 06 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
利用pm2部署多个node.js项目的配置教程
Oct 22 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
vue组件横向树实现代码
Aug 02 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 Javascript
轻松解决JavaScript定时器越走越快的问题
May 13 Javascript
vue自定义标签和单页面多路由的实现代码
May 03 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
0基础学习前端开发的一些建议
Jul 14 #Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 #jQuery
Vue切换div显示隐藏,多选,单选代码解析
Jul 14 #Javascript
JS数组reduce()方法原理及使用技巧解析
Jul 14 #Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 #Javascript
详解javascript void(0)
Jul 13 #Javascript
Vue组件间数据传递的方式(3种)
Jul 13 #Javascript
You might like
php 表单验证实现代码
2009/03/10 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
PHP与以太坊交互详解
2018/08/24 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
毕业生就业自荐书
2013/12/15 职场文书
公司领导班子对照材料
2014/08/18 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis