国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript與數據結構系列(二)——隊列的實現

vslam / 969人閱讀

摘要:隊列實現使用數組來實現隊列看起來順理成章。中的數組具有其他編程語言中沒有的優點數組的方法可以在數組末尾加入元素方法則可刪除數組的第一個元素。方法將它的參數插入數組中第一個開放的位置該位置總在數組的末尾即使是個空數組也是如此。

隊列實現

使用數組來實現隊列看起來順理成章。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] + "
";
    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] + "
";
  }
  return retStr;
}

function empty() {
  if (this.dataStore.length == 0) {
    return true;
  } else {
    return false;
  }
}
后話

當然,學好前端,你還需要關注一個公眾號!——每日前端
各位兄弟姐妹,共勉!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79198.html

相關文章

  • 算法系列——JavaScript中廣度優先搜索思想實現

    摘要:散列表上面的地圖向我們展示了如何用廣度優先搜索的思想找到北京到廣州的最短路線。在廣度優先搜索中,我們需要用到隊列的這種思想來實現查找。建立了下面這個模型武漢廣州西藏上海上海武漢廣州代碼完整實現,利用遞歸和廣度優先搜索的思想實現。 什么是廣度優先搜索? 如果只是是背概念,幼兒園的小朋友都能背下來念給你聽。 假設看這篇文章的都和我一樣是個前端工程師,我們要從廣度優先搜索(BFS)中學到什么...

    everfly 評論0 收藏0
  • 學習JavaScript數據結構算法(一):棧隊列

    摘要:之數組操作接下來就是數據結構的第一部分,棧。以字符串顯示棧中所有內容方法的實現說明需要往棧中添加新元素,元素位置在隊列的末尾。的前端樂園原文鏈接寒假前端學習學習數據結構與算法,棧與隊列 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第...

    Flink_China 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業這是上關于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內容的標簽添加內容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學者更好的掌握排序算法的實現。 成為專業程序員路上用到的各種優秀資料、神器及框架 成為一名專業程序員的道路上,需要堅持練習、學習與積累,技術方面既要有一定的廣度,更要有自己的深度。 Java...

    DangoSky 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業這是上關于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內容的標簽添加內容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學者更好的掌握排序算法的實現。 成為專業程序員路上用到的各種優秀資料、神器及框架 成為一名專業程序員的道路上,需要堅持練習、學習與積累,技術方面既要有一定的廣度,更要有自己的深度。 Java...

    zgbgx 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<