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 相关文章推荐
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
jquery统计用户选中的复选框的个数
Jun 06 Javascript
node.js中的console.time方法使用说明
Dec 09 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
Mar 17 Javascript
DWR中各种java方法的调用
May 04 Javascript
Bootstrap响应式表格详解
May 23 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 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来写记数器(详细介绍)
2006/10/09 PHP
PHP的FTP学习(三)
2006/10/09 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
python遍历数组的方法小结
2015/04/30 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python最长回文串算法
2018/06/04 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
世界读书日的活动方案
2014/08/20 职场文书
2014年科技工作总结
2014/11/26 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers