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 相关文章推荐
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
理解javascript中的with关键字
Feb 15 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
javascript标准库(js的标准内置对象)总结
May 26 Javascript
vue实现表单录入小案例
Sep 27 Javascript
JS如何监听div的resize事件详解
Dec 03 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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
PHPlet在Windows下的安装
2006/10/09 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
Javascript基础知识(二)事件
2014/09/29 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
13个PHP函数超实用
2015/10/21 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中的字符串替换操作示例
2016/06/27 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
使用django自带的user做外键的方法
2020/11/30 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
美国钻石商店:Zales
2016/11/20 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
个人委托书格式
2014/04/04 职场文书
大学新闻系求职信
2014/06/03 职场文书
会议通知格式范文
2015/04/15 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang