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 相关文章推荐
javascript document.execCommand() 常用解析
Dec 14 Javascript
JavaScript访问样式表代码
Oct 15 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
JS字符串截取函数实例
Dec 27 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
zepto.js 实时监听输入框的方法
Dec 04 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 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实现采集程序原理和简单示例代码
2007/03/18 PHP
PHP调用Webservice实例代码
2011/07/29 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
简单学习vue指令directive
2016/11/03 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
学习python的几条建议分享
2013/02/10 Python
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
python使用turtle绘制分形树
2018/06/22 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
什么是TCP/IP
2014/07/27 面试题
linux面试题参考答案(1)
2016/01/22 面试题
应届毕业生自我评价分享
2013/12/15 职场文书
2014小学年度工作总结
2014/12/20 职场文书
《观察物体》教学反思
2016/02/17 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
浅谈PHP7中的一些小技巧
2021/05/29 PHP
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL