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学习笔记7 原型链的原理
Jan 11 Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
Jquery插件easyUi实现表单验证示例
Dec 15 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
express框架实现基于Websocket建立的简易聊天室
Aug 10 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
three.js显示中文字体与tween应用详析
Jan 04 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 strtotime函数详解
2009/12/18 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python多进程重复加载的解决方式
2019/12/13 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
什么是URL
2015/12/13 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
个人简历自我评价范文
2014/02/04 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript
PHP遍历数组的6种方式总结
2021/11/17 PHP
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android