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 相关文章推荐
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
关于Javascript与iframe的那些事儿
Jul 04 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
Apr 17 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
Vue组件化通讯的实例代码
Jun 23 Javascript
JSON数据中存在单个转义字符“\”的处理方法
Jul 11 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 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用正则表达式匹配中文实例详解
2013/11/06 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
索趣科技的答案
2007/02/07 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python写入CSV文件的方法
2015/07/08 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
pandas通过索引进行排序的示例
2018/11/16 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
详解Python 切片语法
2019/06/10 Python
python3实现猜数字游戏
2020/12/07 Python
tensorflow的计算图总结
2020/01/12 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
安全生产知识竞赛活动总结
2014/07/07 职场文书
白酒代理协议书范本
2014/10/26 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
保洁员岗位职责
2015/02/04 职场文书
十月围城观后感
2015/06/08 职场文书
二十年同学聚会感言
2015/07/30 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
解决xampp安装后Apache无法启动
2022/03/21 Servers