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 相关文章推荐
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
JS+CSS实现简易实用的滑动门菜单效果
Sep 18 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
Oct 09 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 Javascript
JavaScript面试开发常用的知识点总结
Aug 08 Javascript
详解JavaScript树结构
Jan 09 Javascript
JavaScript利用Date实现简单的倒计时实例
Jan 12 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
Mar 09 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 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定时执行计划任务的多种方法小结
2011/12/19 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python使用Apriori算法进行关联性解析
2017/12/21 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
对python中list的五种查找方法说明
2020/07/13 Python
python制作抽奖程序代码详解
2021/01/15 Python
西班牙在线光学:Visual-Click
2020/06/22 全球购物
银行实习生的自我评价
2013/12/09 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
出纳员岗位责任制
2014/02/11 职场文书
生产助理岗位职责
2014/06/18 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
死亡证明书样本说明
2014/10/18 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
小学语文复习计划
2015/01/19 职场文书
护士自荐信范文
2015/03/25 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python