JavaScript数据结构之队列

2023-11-04

class Queue{
  constructor() {
    this.count = 0
    this.list = {}
    this.lowestCount=0
  }
  //往队列添加元素
  enqueue (element) {
    this.list[this.count] = element
    this.count++
  }
  //检测队列是否为空
  isEmpty () {
    return this.count-this.lowestCount===0
  }
  //从队列里移除元素
  dequeue () {
    if (this.isEmpty()) {
      return undefined
    }
    const result = this.list[this.lowestCount]
    delete this.list[this.lowestCount]
    this.lowestCount++
    return result
  }
  //查看队列头元素
  peek () {
    if (this.isEmpty()) {
      return undefined
    }
    return this.list[this.lowestCount]
  }
  //获取队列长度
  size () {
    return this.count - this.lowestCount 
  }
  //清空队列
  clear () {
    this.list = {}
    this.count = 0
    this.lowestCount=0
  }
  //字符串方法
  toString () {
    if (this.isEmpty()) {
      return ''
    }
    let str = `${this.list[this.lowestCount]}`
    for (let i = this.lowestCount + 1; i < this.count; i++){
      str+=`,${this.list[i]}`
    }
    return str
  }
  //
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript数据结构之队列 的相关文章

随机推荐

  • 设计模型之外观模式(含UML完整实例)

    设设计模型之外观模式 1 外观模式 1 1 定义与特点 是一种通过为多个复杂的子系统提供一个一致的接口 外部应用程序不用关心内部子系统的具体的细节 这样会大大降低应用程序的复杂度 并减少了客户处理的对象数目 提高了程序的可维护性 外观 Fa
  • uncaught referenceerror cryptojs is not defined

    下载地址 https registry npmjs org crypto js crypto js 3 1 2 tgz 当需要别的版本只需要将版本修改即可 eg 4 1 2 https registry npmjs org crypto j
  • win10 安装 Ubuntu 子系统

    参考 Linux Ubuntu 20 04换阿里源 Ubuntu 20 04换国内源 清华源 阿里源 中科大源 163源 开启win10下Ubuntu子系统的SSH服务 Win10 wsl linux子系统ssh服务自启动设置 安装使用oh
  • 完美解决centos7下pdf中文不显示问题

    最近的网站开发中 有一个需要word转pdf的需求 本地发现word转pdf后中文正常展示 但是centos里面中文部分是空白的 针对此问题 解决方案如下 将本地windows里面的字体复制到linux上 windows10 字体路径为 C
  • 2024届IC秋招兆易创新数字IC后端笔试面试题

    数字IC后端实现PR阶段设计导入需要哪些文件 设计导入需要的文件如下图所示 这个必须熟练掌握 只要做过后端训练营项目的 对这个肯定是比较熟悉的 大家还要知道每个input文件的作用是什么 在吾爱IC后端训练营Cortexa7core项目中
  • python读音-原来Python应该这么念,怪不得总被嘲笑~

    原标题 原来Python应该这么念 怪不得总被嘲笑 Python具有简单 易学 免费 开源 可扩展 可嵌入 面向对象等优点 它的面向对象甚至比java和c net更彻底 可以与C 完美融合 两者堪称 万金油 相信很多人都不知道Python这
  • 常见(MySQL)面试题(含答案)

    常见 MySQL 面试题 含答案 本文的面试题如下 MyisAM和innodb的有关索引的疑问 innodb为什么要用自增id作为主键 MySql索引是如何实现的 说说分库与分表设计 面试过 聚集索引与非聚集索引的区别 事务四大特性 ACI
  • DataSource数据源

    本文详细的介绍了 JAVA中的数据源 认真看下来 你一定会收获满满 文章目录 一 DataSource接口 二 SpringBoot中的DataSource相关 1 默认提供一个数据源 2 自定义数据源 与 默认数据源 优先级 3 myba
  • win7中vscode配置jupyter

    一 内容简介 win7下用vscode写python程序 二 主要流程 3 1 安装环境 3 2 使用vscode运行调试python代码 3 3 vscode调用jupyter运行调试python代码 三 具体步骤 4 1 安装环境 vs
  • jsp Request原理

    jsp Request原理 1 Tomcat 服务器会根据请求url中的资源路径 创建对应的ServletDemo1的对象 2 tomcat服务器 会创建request和response对象 request对象封装请求消息数据 3 tomc
  • fijkplayer的使用

    1 配置 pubspec yaml 加入 fijkplayer 0 10 1 2 直接使用 import dart math import package flutter material dart import package fijkp
  • python面试题总结_2019(有解释答案) --3

    目录 50 Python 交换两个变量的值 51 在读文件操作的时候会使用 read readline 或者 readlines 简述它们各自的作用 52 json序列化时 可以处理的数据类型有哪些 如何定制支持 datetime 类型 5
  • 前端如何使用微信支付

    一 h5页面支付 h5页面接入微信支付分为两种情况 一种微信内置浏览器调用支付 另一种是在外置浏览器调用支付 内置浏览器支付 内置浏览器支付使用JSAPI支付 前端调用代码 wx chooseWXPay timestamp 0 支付签名时间
  • MySQL 服务器进程 mysqld的组成

    有连接层 SQL 层 存储层组成 连接层 为每个连接维护一个线程 进行身份验证 处理查询执行 SQL 层 包括了解析 授权分析 优化 执行 查询日志记录 存储层 管理表数据 常见的存储引擎有 InnoDB MyISAM MEMORY 和 N
  • python爬虫接口_爬虫与API(上)

    本系列两篇文章讲API的概念 以及它在爬虫中的使用 分为如下部分 API概念 库的API 数据API Github API httpbin 其他API 由于篇幅限制 本文只展示API概念 库的API 数据API API概念 API Appl
  • 程序员必知的23种设计模式之策略模式

    文章目录 1 模式引入 鸭子项目 2 传统方案解决鸭子问题 3 传统方式解决鸭子问题分析和解决方案 4 策略模式基本介绍 4 1 策略模式的原理类图 4 2 说明 5 策略模式解决鸭子问题 6 策略模式的注意事项和细节 1 模式引入 鸭子项
  • 比较两个版本字符串version1和version2

    时间限制 1秒 空间限制 32768K 如果version1 gt version2 返回1 如果 version1 lt version2 返回 1 不然返回0 输入的version字符串非空 只包含数字和字符 字符不代表通常意义上的小数
  • 23.7.14——23.7.16周末作业

    思维导图 2 有1 2 3 4个数字 能组成多少互不相同且无重复的三位 都是多少 3 终端输入一个数 输出他的二进制 二进制输出不可用格式符 4 定义一个一维整型数组 使用for循环实现数组中元素的输入输出 5 终端输入两个数 求这两个数的
  • windows下PL/SQL Developer连接Orcale

    2 使用PL SQL Developer连接Orcale 这是第三方开发的工具 用于编写PL SQL 代码 调试 查看执行计划等等功能 比较方便 但是是付费软件 Oracle 没有收购这家公司 大家只能用低版本的绿色版 性能有很大的问题 而
  • JavaScript数据结构之队列

    class Queue constructor this count 0 this list this lowestCount 0 往队列添加元素 enqueue element this list this count element t