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

資訊專欄INFORMATION COLUMN

JavaScript的數據結構與算法(二) —— 隊列

xingqiba / 1680人閱讀

摘要:簡介隊列遵循的是先進先出的原則的一組有序的項。隊列從尾部添加新元素,并從頂部移除元素,最新添加的元素必須排列在隊列的末尾。它的想法來自于生活中排隊的策略。隊列不做任何變動。

簡介

隊列遵循的是FIFO(先進先出)的原則的一組有序的項。

隊列從尾部添加新元素,并從頂部移除元素,最新添加的元素必須排列在隊列的末尾。

它的想法來自于生活中排隊的策略。顧客在付款結賬的時候,按照到來的先后順序排隊結賬,先來的顧客先結賬,后來的顧客后結賬。

代碼實現

讓我們在js提供的數組方法上,簡單實現一個隊列(Queue)類:

enqueue(): 向隊列尾部插入一個元素

dequeue(): 移除隊列第一個元素

front(): 返回隊列第一個元素

isEmpty(): 判斷隊列是否為空

clear(): 移除隊列所有元素

size(): 返回隊列元素個數

function Queue() {
  var items = [];
  
  this.enqueue = function(element){//向隊列尾部添加一個(或是多個)元素
    items.push(element);
  };
  
  this.dequeue = function(){//移除隊列的第一個元素,并返回被移除的元素
    return items.shift();
  };
  
  this.front = function(){//返回隊列的第一個元素——最先被添加的,也將是最先被移除的元素。隊列不做任何變動。(不移除元素,只返回元素信息。與stack的peek方法類似)
    return items[0];
  };
  
  this.isEmpty = function(){//如果隊列內沒有任何元素就返回true,否則返回false
    return items.length == 0;
  };
  
  this.clear = function(){//移除隊列里的所有元素
    items = [];
  };
  
  this.size = function(){//返回隊列里的元素個數
    return items.length;
  };
  
  this.print = function(){//打印                                                                                                                                                                                                                             
    console.log(items.toString());
  };
 }

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

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

相關文章

  • 學習JavaScript數據結構算法(一):棧隊列

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

    Flink_China 評論0 收藏0
  • 算法系列——JavaScript中廣度優先搜索思想實現

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

    everfly 評論0 收藏0
  • 學習數據結構算法之棧隊列

    摘要:于是翻出了機房里的這本學習數據結構與算法開始學習程序員的基礎知識。這本書用了我最熟悉的來實現各種數據結構和算法,而且書很薄,可以說是一本不錯的入門教程。隊列在頭部刪除元素,尾部添加元素。 本系列所有文章:第一篇文章:學習數據結構與算法之棧與隊列第二篇文章:學習數據結構與算法之鏈表第三篇文章:學習數據結構與算法之集合第四篇文章:學習數據結構與算法之字典和散列表第五篇文章:學習數據結構與算...

    pingan8787 評論0 收藏0
  • 前端進擊巨人():棧、堆、隊列、內存空間

    摘要:中有三種數據結構棧堆隊列。前端進擊的巨人一執行上下文與執行棧,變量對象中解釋執行棧時,舉了一個乒乓球盒子的例子,來演示棧的存取方式,這里再舉個栗子搭積木。對于基本類型,棧中存儲的就是它自身的值,所以新內存空間存儲的也是一個值。 面試經常遇到的深淺拷貝,事件輪詢,函數調用棧,閉包等容易出錯的題目,究其原因,都是跟JavaScript基礎知識不牢固有關,下層地基沒打好,上層就是豆腐渣工程,...

    edgardeng 評論0 收藏0

發表評論

0條評論

xingqiba

|高級講師

TA的文章

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