前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS 算法与数据结构之队列

JS 算法与数据结构之队列

作者头像
Leophen
发布2021-06-22 22:28:51
4800
发布2021-06-22 22:28:51
举报
文章被收录于专栏:Web前端开发Web前端开发

一、 什么是队列

队列是一种先进先出(FIFO,First-in-first-out)的数据结构,其数据智能在队尾插入,在队首删除。

可以将队列想象成在食堂排队的人群,排在最前面的人第一个打饭,后面来的人只能在队尾排队,直到轮到他们为止。

二、队列的操作

1、入队

使用 enqueue() 方法, 在队尾插入新元素。

2、出队

使用 dequeue() 方法, 删除队头的元素。

3、读取队头元素

使用 front() 方法,读取队首的元素。

4、读取队尾元素

使用 back() 方法,读取队尾的元素。

5、显示队列内的所有元素

使用 toString() 方法,显示队列的所有元素。

6、表示队列内是否含有元素

使用 empty() 方法,判断队列是否为空。

三、队列的实现

1、定义 Queue 类

代码语言:javascript
复制
function Queue() {
  this.dataStore = []
  this.enqueue = enqueue
  this.dequeue = dequeue
  this.front = front
  this.back = back
  this.toString = toString
  this.empty = empty
}

2、实现 enqueue 方法

代码语言:javascript
复制
function enqueue(element) {
  this.dataStore.push(element)
}

3、实现 dequeue 方法

代码语言:javascript
复制
function dequeue() {
  return this.dataStore.shift()
}

4、实现 front 方法

代码语言:javascript
复制
function front() {
  return this.dataStore[0]
}

5、实现 back 方法

代码语言:javascript
复制
function back() {
  return this.dataStore[this.dataStore.length - 1]
}

6、实现 toString 方法

代码语言:javascript
复制
function toString() {
  var retStr = ''
  for (var i = 0; i < this.dataStore.length; ++i) {
    retStr += this.dataStore[i] + '\n'
  }
  return retStr
}

7、实现 empty 方法

代码语言:javascript
复制
function empty() {
  if (this.dataStore.length == 0) {
    return true
  } else {
    return false
  }
}

8、测试 Queue 类的实现

代码语言:javascript
复制
var q = new Queue()

q.enqueue('a')
q.enqueue('b')
q.enqueue('c')

console.log(q.toString())
// "a"
// "b"
// "c"

q.dequeue()

console.log(q.toString())
// "b"
// "c"
console.log(q.front())  // "b"
console.log(q.back())   // "c"
console.log(q.empty())  // false

q.dequeue()
q.dequeue()

console.log(q.empty())  // true
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 什么是队列
  • 二、队列的操作
    • 1、入队
      • 2、出队
        • 3、读取队头元素
          • 4、读取队尾元素
            • 5、显示队列内的所有元素
              • 6、表示队列内是否含有元素
              • 三、队列的实现
                • 1、定义 Queue 类
                  • 2、实现 enqueue 方法
                    • 3、实现 dequeue 方法
                      • 4、实现 front 方法
                        • 5、实现 back 方法
                          • 6、实现 toString 方法
                            • 7、实现 empty 方法
                              • 8、测试 Queue 类的实现
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档