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 相关文章推荐
javascript 函数使用说明
Apr 07 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
Apr 15 Javascript
JavaScript 字符串处理函数使用小结
Dec 02 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
JavaScript实现select添加option
Jul 03 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
完善的jquery处理机制
Feb 21 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 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面向对象编程快速入门
2006/10/09 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
react基本安装与测试示例
2020/04/27 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python基础教程之匿名函数lambda
2017/01/17 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
单位推荐信范文
2015/03/27 职场文书
关于观后感的作文
2015/06/18 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技
java实现面板之间切换功能
2022/06/10 Java/Android