欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現多叉樹的遞歸遍歷和非遞歸遍歷算法操作示例

 更新時間:2018年02月08日 10:30:57   作者:zhangchao19890805  
這篇文章主要介紹了JavaScript實現多叉樹的遞歸遍歷和非遞歸遍歷算法,結合實例形式詳細分析了JavaScript多叉樹針對json節(jié)點的遞歸與非遞歸遍歷相關操作技巧,需要的朋友可以參考下

本文實例講述了JavaScript實現多叉樹的遞歸遍歷和非遞歸遍歷算法操作。分享給大家供大家參考,具體如下:

演示之前的準備工作

演示項目的文件結構:

index.html
jsonData.js
recurrenceTree.js
noRecurrenceTree.js

解釋一下各個文件:

index.html 是用來演示的 HTML 文件。
jsonData.js 里面存儲著多叉樹的JSON數據。
recurrenceTree.js 遞歸算法遍歷樹。
noRecurrenceTree.js 非遞歸算法遍歷樹。

jsonData.js

/**
 * 用于演示的 JSON 樹形數據結構
 */
var root = {
  name:'D盤',
  children:[
    {
      name:'學習',
      children:[
        {
          name:'電子書',
          children:[
            {
              name:'文學',
              children:[
                {
                  name:'茶館'
                },
                {
                 name:'紅與黑'
                }
              ]
            }
          ]
        }
      ]
    },
    {
      name:'電影',
      children:[
        {
          name:'美國電影'
        },
        {
          name:'日本電影'
        }
      ]
    }
  ]
}

index.html

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="renderer" content="webkit"/>
  <meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1">
  <meta http-equiv="Cache-Control" content="max-age: 31536000">
  <title>www.dbjr.com.cn js多叉樹遍歷</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta name="wap-font-scale" content="no">
  <meta name="author" content="">
  <meta name="keywords" content="">
  <meta name="description" content="">
  <script type="text/javascript" src="jsonData.js"></script>
 </head>
 <body>
  遞歸遍歷:<span id="app"></span>
  <script type="text/javascript" src="recurrenceTree.js"></script>
  <hr>
  非遞歸遍歷:<span id="app2"></span>
  <script type="text/javascript" src="noRecurrenceTree.js"></script>
 </body>
</html>

遞歸遍歷

recurrenceTree.js

// 遍歷單個節(jié)點
function traverseNode(node){
  var divObj = document.getElementById("app");
  divObj.innerHTML = divObj.innerHTML + " " + node.name;
}
// 遞歸遍歷樹
// 作者:張超
function traverseTree(node){
  if (!node) {
    return;
  }
  traverseNode(node);
  if (node.children && node.children.length > 0) {
    var i = 0;
    for (i = 0; i < node.children.length; i++) {
      this.traverseTree(node.children[i]);
    }
  }
}
traverseTree(root);

非遞歸遍歷

noRecurrenceTree.js

// 遍歷單個節(jié)點
function traverseNode2(node){
  var divObj2 = document.getElementById("app2");
  divObj2.innerHTML = divObj2.innerHTML + " " + node.name;
}
// 非遞歸遍歷樹
// 作者:張超
function traverseTree2(node){
  if (!node) {
    return;
  }
  var stack = [];
  stack.push(node);
  var tmpNode;
  while (stack.length > 0) {
    tmpNode = stack.pop();
    traverseNode2(tmpNode);
    if (tmpNode.children && tmpNode.children.length > 0) {
      var i = tmpNode.children.length - 1;
      for (i = tmpNode.children.length - 1; i >= 0; i--) {
        stack.push(tmpNode.children[i]);
      }
    }
  }
}
traverseTree2(root);

本機測試效果:

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數據結構與算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • javascript中等于(==)與全等(===)的區(qū)別說明

    javascript中等于(==)與全等(===)的區(qū)別說明

    等于(==)的情況下 只要值相同就返回True。而全等(===)的時候需要值和類型都要匹配才能返回True.
    2011-01-01
  • 微信小程序實現固定表頭、列表格組件

    微信小程序實現固定表頭、列表格組件

    這篇文章主要介紹了微信小程序實現固定表頭、列表格組件的相關資料,這個功能在我們進行小程序開發(fā)的時候非常實用,文章通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-07-07
  • JavaScript隨機生成顏色的方法

    JavaScript隨機生成顏色的方法

    這篇文章主要介紹了JavaScript隨機生成顏色的方法的相關資料,非常不錯,代碼簡單易懂,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • js實現固定寬高滑動輪播圖效果

    js實現固定寬高滑動輪播圖效果

    本文主要分享了js實現PC固定寬高滑動輪播圖效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • js實現點贊按鈕功能的實例代碼

    js實現點贊按鈕功能的實例代碼

    這篇文章主要介紹了js實現點贊按鈕功能,本文通過實例代碼給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • js動態(tài)往表格的td中添加圖片并注冊事件

    js動態(tài)往表格的td中添加圖片并注冊事件

    這篇文章主要介紹了使用js動態(tài)往表格的td中添加圖片并注冊事件,需要的朋友可以參考下
    2014-06-06
  • javascript 回車鍵后跳到下一控件

    javascript 回車鍵后跳到下一控件

    按回車鍵后跳到下一控件的js代碼
    2009-03-03
  • javascript模擬實現計算器

    javascript模擬實現計算器

    這篇文章主要為大家詳細介紹了javascript模擬實現計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 微信小程序tabBar組件切換與下拉刷新實現詳解

    微信小程序tabBar組件切換與下拉刷新實現詳解

    tabBar相對而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關于微信小程序全局配置之tabBar的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • 利用Echarts實現圖例顯示百分比效果

    利用Echarts實現圖例顯示百分比效果

    EChart開源來自百度商業(yè)前端數據可視化團隊,基于html5?Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表。本文將利用EChart實現圖例中顯示百分比的效果,感興趣的可以學習一下
    2022-03-03

最新評論