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 相关文章推荐
ExtJs使用IFrame的实现代码
Mar 24 Javascript
Juqery Html(),append()等方法的Bug解决方法
Dec 13 Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
用Javascript来生成ftp脚本的小例子
Jul 03 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 Javascript
javascript实现添加附件功能的方法
Nov 18 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
Nov 05 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
ie 调试javascript的工具
2009/04/29 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python简单进程锁代码实例
2015/04/27 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
献爱心倡议书
2014/04/14 职场文书
个人欠款担保书
2014/05/20 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
2014年领班工作总结
2014/11/25 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android