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获取选中radio对应的值(一句代码)
Jun 03 Javascript
Node.js开发指南中的简单实例(mysql版)
Sep 17 Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 Javascript
详解maxlength属性在textarea里奇怪的表现
Dec 27 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
Sep 01 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
xtree.js 代码
2007/03/13 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
应届生妇产科护士求职信
2013/10/27 职场文书
社区包粽子活动方案
2014/01/21 职场文书
第二课堂活动总结
2014/05/07 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
导游欢送词
2015/01/31 职场文书
贷款担保书范本
2015/09/22 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS