成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript的數(shù)據(jù)結(jié)構(gòu)與算法(二) —— 隊(duì)列

xingqiba / 1684人閱讀

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

簡介

隊(duì)列遵循的是FIFO(先進(jìn)先出)的原則的一組有序的項(xiàng)。

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

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

代碼實(shí)現(xiàn)

讓我們在js提供的數(shù)組方法上,簡單實(shí)現(xiàn)一個(gè)隊(duì)列(Queue)類:

enqueue(): 向隊(duì)列尾部插入一個(gè)元素

dequeue(): 移除隊(duì)列第一個(gè)元素

front(): 返回隊(duì)列第一個(gè)元素

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

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

size(): 返回隊(duì)列元素個(gè)數(shù)

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89255.html

相關(guān)文章

  • 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)算法(一):棧隊(duì)列

    摘要:之?dāng)?shù)組操作接下來就是數(shù)據(jù)結(jié)構(gòu)的第一部分,棧。以字符串顯示棧中所有內(nèi)容方法的實(shí)現(xiàn)說明需要往棧中添加新元素,元素位置在隊(duì)列的末尾。的前端樂園原文鏈接寒假前端學(xué)習(xí)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,棧與隊(duì)列 本系列的第一篇文章: 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(一),棧與隊(duì)列第二篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(二):鏈表第三篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(三):集合第...

    Flink_China 評論0 收藏0
  • 算法系列——JavaScript中廣度優(yōu)先搜索思想實(shí)現(xiàn)

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

    everfly 評論0 收藏0
  • 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)算法之棧隊(duì)列

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

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

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

    edgardeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<