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];
}

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;
  }
}

后话

固然,学好前端,你还须要关注一个民众号!——逐日前端
列位兄弟姐妹,共勉!
《Javascript与数据结构系列(二)——行列的完成》

    原文作者:Vagor
    原文地址: https://segmentfault.com/a/1190000004921006
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞