Javascript与数据结构系列——队列的实现

Posted 岁月如歌(丁盛)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript与数据结构系列——队列的实现相关的知识,希望对你有一定的参考价值。

队列实现

使用数组来实现队列看起来顺理成章。javascript 中的数组具有其他编程语言中没有的优点, 数组的 push() 方法可以在数组末尾加入元素,shift() 方法则可删除数组的第一个元素。

 

push() 方法将它的参数插入数组中第一个开放的位置,该位置总在数组的末尾,即使是个 空数组也是如此。请看下面的例子:

 

names = [];

name.push("Cynthia"); names.push("Jennifer"); print(names); // 显示 Cynthia,Jennifer

然后使用 shift() 方法删除数组的第一个元素:

 

names.shift();

准备开始实现 Queue 类,先从构造函数开始:

 

function Queue() {

    this.dataStore = [];

    this.enqueue = enqueue;

    this.dequeue = dequeue;

    this.front = front;

    this.back = back;

    this.toString = toString;

    this.empty = empty;

}

enqueue() 方法向队尾添加一个元素:

 

function enqueue(element) {

    this.dataStore.push(element);

}

dequeue() 方法删除队首的元素:

 

function dequeue() {

    return this.dataStore.shift();

}

可以使用如下方法读取队首和队尾的元素:

 

function front() {

    return this.dataStore[0];

}

function back() {

    return this.dataStore[this.dataStore.length-1];

}

还需要 toString() 方法显示队列内的所有元素:

 

 function toString() {

    var retStr = "";

    for (var i = 0; i < this.dataStore.length; ++i) {

       retStr += this.dataStore[i] + "\n";

    return retStr;

 }

最后,需要一个方法判断队列是否为空:

 

function empty() {

    if (this.dataStore.length == 0) {

       return true;

    }

    else {

       return false;

    } 

}

 

代码归纳

function Queue() {

  this.dataStore = [];

  this.enqueue = enqueue;

  this.dequeue = dequeue;

  this.front = front;

  this.back = back;

}

this.toString = toString;

this.empty = empty;

}

 

function enqueue(element) {

  this.dataStore.push(element);

}

 

function dequeue() {

  return this.dataStore.shift();

}

 

function front() {

  return this.dataStore[0];

}

 

function back() {

  return this.dataStore[this.dataStore.length - 1];

}

 

转自: https://segmentfault.com/a/1190000004921006

作者: Vagor

以上是关于Javascript与数据结构系列——队列的实现的主要内容,如果未能解决你的问题,请参考以下文章

5分钟入门JavaScript队列(Queue)数据结构JavaScript数据结构与算法系列

5分钟入门JavaScript队列(Queue)数据结构JavaScript数据结构与算法系列

JavaScript数据结构与算法基础笔记

JavaScript数据结构与算法基础笔记

JavaScript数据结构——队列的实现与应用

JavaScript的数组实现队列与堆栈的方法