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 相关文章推荐
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 Javascript
shiro授权的实现原理
Sep 21 Javascript
Vue不能检测到Object/Array更新的情况的解决
Jun 26 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
vue-lazyload使用总结(推荐)
Nov 01 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 Javascript
js实现选项卡效果
Mar 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
php 归并排序 数组交集
2011/05/10 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
JS处理VBArray的函数使用说明
2008/05/11 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
Script的加载方法小结
2011/01/12 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python进行数据提取的方法总结
2016/08/22 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
岗位职责的构建方法
2014/02/01 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
上课不认真检讨书
2014/09/17 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书