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 相关文章推荐
EXT中xtype的含义分析
Jan 07 Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 Javascript
JavaScript中for-in遍历方式示例介绍
Feb 11 Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
react中使用swiper的具体方法
May 15 Javascript
mpvue构建小程序的方法(步骤+地址)
May 22 Javascript
vue.js轮播图组件使用方法详解
Jul 03 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
详解vue中组件参数
Jul 09 Javascript
深入了解JavaScript代码覆盖
Jun 13 Javascript
vue 的 solt 子组件过滤过程解析
Sep 07 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
python海龟绘图实例教程
2014/07/24 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
Python探索之创建二叉树
2017/10/25 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
python数字类型math库原理解析
2020/03/02 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
师范大学音乐表演专业求职信
2013/10/23 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
旷工辞退通知书
2015/04/17 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
讲解MySQL增删改操作
2022/05/06 MySQL