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,超强推荐share.js
Dec 23 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
form表单action提交的js部分与html部分
Jan 07 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
原生JavaScript实现拖动校验功能
Sep 29 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 Javascript
jQuery ajax - getScript() 方法和getJSON方法
May 14 jQuery
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
ZF等常用php框架中存在的问题
2008/01/10 PHP
php session安全问题分析
2011/06/24 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
初识PHP
2014/09/28 PHP
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
借助node实战JSONP跨域实例
2017/03/30 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
Vue程序调试的方法
2019/06/17 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python selenium如何设置等待时间
2016/09/15 Python
获取Django项目的全部url方法详解
2017/10/26 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
django 读取图片到页面实例
2020/03/27 Python
django和flask哪个值得研究学习
2020/07/31 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
简历上的自我评价
2014/02/03 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
坎儿井导游词
2015/02/09 职场文书
运动会跳远广播稿
2015/08/19 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers