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 相关文章推荐
asp(javascript)全角半角转换代码 dbc2sbc
Aug 06 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
Apr 01 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
浅析jQuery 3.0中的Data
Jun 14 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
Mar 03 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
May 06 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
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常用的安全过滤函数集锦
2014/10/09 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript数组的扩展实现代码集合
2008/06/01 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python使用cPickle模块序列化实例
2014/09/25 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
python装饰器实例大详解
2017/10/25 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
光盘行动倡议书
2014/02/02 职场文书
文员岗位职责范本
2014/03/08 职场文书
委托公证书
2014/04/08 职场文书
银行求职自荐信范文
2015/03/04 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
迎新生晚会主持词
2015/06/30 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
LeetCode189轮转数组python示例
2022/08/05 Python