最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript樹(shù)的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法示例

 更新時(shí)間:2018年07月30日 11:27:07   作者:筱葭  
這篇文章主要介紹了JavaScript樹(shù)的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法,結(jié)合實(shí)例形式分析了JavaScript樹(shù)的深度優(yōu)先遍歷、廣度優(yōu)先遍歷遞歸與非遞歸相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了JavaScript樹(shù)的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法。分享給大家供大家參考,具體如下:

1、深度優(yōu)先遍歷的遞歸寫(xiě)法

function deepTraversal(node) {
  var nodes = [];
  if (node != null) {
      nodes.push(node);
      var children = node.children;
      for (var i = 0; i < children.length; i++)
          deepTraversal(children[i]);
  }
  return nodes;
}

2、深度優(yōu)先遍歷的非遞歸寫(xiě)法

function deepTraversal(node) {
  var nodes = [];
  if (node != null) {
    var stack = [];
    stack.push(node);
    while (stack.length != 0) {
      var item = stack.pop();
      nodes.push(item);
      var children = item.children;
      for (var i = children.length - 1; i >= 0; i--)
        stack.push(children[i]);
    }
  }
  return nodes;
}

3、廣度優(yōu)先遍歷的遞歸寫(xiě)法:

報(bào)錯(cuò):Maximum call stack size exceeded(…)

function wideTraversal(node) {
  var nodes = [];
  var i = 0;
  if (!(node == null)) {
    nodes.push(node);
    wideTraversal(node.nextElementSibling);
    node = nodes[i++];
    wideTraversal(node.firstElementChild);
  }
  return nodes;
}

4、廣度優(yōu)先遍歷的非遞歸寫(xiě)法

function wideTraversal(selectNode) {
  var nodes = [];
  if (selectNode != null) {
    var queue = [];
    queue.unshift(selectNode);
    while (queue.length != 0) {
      var item = queue.shift();
      nodes.push(item);
      var children = item.children;
      for (var i = 0; i < children.length; i++)
        queue.push(children[i]);
    }
  }
  return nodes;
}

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • js 幻燈片的實(shí)現(xiàn)

    js 幻燈片的實(shí)現(xiàn)

    今天在群里看到有人要幻燈片的代碼,于是我自己也想了想,做個(gè)總結(jié)。常見(jiàn)的幻燈片切換無(wú)非就是輪播和漸變,不管哪種都是用定時(shí)器來(lái)逐步改變圖片或者圖片組的某種屬性來(lái)實(shí)現(xiàn)的
    2011-12-12
  • JavaSctit 利用FileReader和濾鏡上傳圖片預(yù)覽功能

    JavaSctit 利用FileReader和濾鏡上傳圖片預(yù)覽功能

    FileReader 對(duì)象允許Web應(yīng)用程序異步讀取存儲(chǔ)在用戶計(jì)算機(jī)上的文件內(nèi)容,使用 File或 Blob對(duì)象指定要讀取的文件或數(shù)據(jù)。下面通過(guò)本文給大家分享JavaSctit 利用FileReader和濾鏡上傳圖片預(yù)覽功能,需要的朋友參考下吧
    2017-09-09
  • JavaScript時(shí)間對(duì)象之常用方法的設(shè)置實(shí)例

    JavaScript時(shí)間對(duì)象之常用方法的設(shè)置實(shí)例

    這篇文章主要為大家介紹了JavaScript時(shí)間對(duì)象常用方法的設(shè)置實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 簡(jiǎn)單實(shí)現(xiàn)js浮動(dòng)框

    簡(jiǎn)單實(shí)現(xiàn)js浮動(dòng)框

    這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)js浮動(dòng)框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除操作示例

    js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除操作示例

    這篇文章主要介紹了js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除操作,結(jié)合實(shí)例形式分析了基于dedecms后臺(tái)使用js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除相關(guān)操作技巧,需要的朋友可以參考下
    2020-06-06
  • echarts中圖例右置且豎排完整代碼

    echarts中圖例右置且豎排完整代碼

    這篇文章主要給大家介紹了關(guān)于echarts中圖例右置且豎排的相關(guān)資料,Echarts可以幫助我們快速構(gòu)建柱狀圖、餅圖、條形圖,這對(duì)于多圖形化展示數(shù)據(jù)來(lái)說(shuō)尤其方便,可幫助我們快速開(kāi)發(fā),需要的朋友可以參考下
    2023-08-08
  • js實(shí)現(xiàn)每日簽到功能

    js實(shí)現(xiàn)每日簽到功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)每日簽到功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JavaScript中的全局對(duì)象介紹

    JavaScript中的全局對(duì)象介紹

    這篇文章主要介紹了JavaScript中的全局對(duì)象介紹,對(duì)于任何JavaScript程序,當(dāng)程序開(kāi)始運(yùn)行時(shí),JavaScript解釋器都會(huì)初始化一個(gè)全局對(duì)象以供程序使用,需要的朋友可以參考下
    2015-01-01
  • JS轉(zhuǎn)換金額大寫(xiě)方法詳細(xì)例子

    JS轉(zhuǎn)換金額大寫(xiě)方法詳細(xì)例子

    在處理財(cái)務(wù)賬款類需求時(shí)需要將轉(zhuǎn)賬金額寫(xiě)成大寫(xiě)的,下面這篇文章主要給大家介紹了關(guān)于JS轉(zhuǎn)換金額大寫(xiě)方法的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10
  • 微信小程序返回上一級(jí)頁(yè)面的實(shí)現(xiàn)代碼

    微信小程序返回上一級(jí)頁(yè)面的實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序返回上一級(jí)頁(yè)面的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

桑植县| 石景山区| 东安县| 合阳县| 静宁县| 漠河县| 台山市| 钟山县| 三台县| 丹棱县| 湘潭市| 太康县| 焦作市| 汪清县| 泰安市| 漳平市| 浦城县| 大竹县| 政和县| 阳东县| 秭归县| 包头市| 巴马| 略阳县| 堆龙德庆县| 靖安县| 平安县| 海口市| 岫岩| 济宁市| 金平| 青岛市| 三穗县| 阜平县| 嘉鱼县| 玉山县| 平南县| 张家口市| 石阡县| 吴堡县| 青岛市|