var root = {name:'D盘',children:[{name:'学习',children:[{name:'电子书',children:[{name:'文学',children:[{name:'茶馆'},{name:'红与黑'}]}]}]},{name:'电影',children:[{name:'美国电影'},{name:'日本电影'}]}]
}
<!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.jb51.net 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>

递归遍历

// 遍历单个节点
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);

非递归遍历

// 遍历单个节点
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);

js遍历树状数组的方法相关推荐

  1. 【转载】树状数组题目

    先提个注意点,由于Lowbit(0) = 0,这会导致x递增的那条路径发生死循环,所有当树状数组中可能出现0时,我们都全部加一,这样可以避免0带来的麻烦-- 简单:       POJ 2299 Ul ...

  2. 如此好的树状数组学习资料

    树状数组学习系列1 之 初步分析--czyuan原创 其实学树状数组说白了就是看那张图,那张树状数组和一般数组的关系的,看懂了基本就没问题了,推荐下面这个教程:http://www.topcoder. ...

  3. dp 树状数组 逆序元组

    wmq的队伍 发布时间: 2017年4月9日 17:06   最后更新: 2017年4月9日 17:07   时间限制: 2000ms   内存限制: 512M 描述 交大上课需要打卡,于是在上课前的 ...

  4. L3-002 堆栈 树状数组+二分答案

    题目详情点击这里 思路:用std::stack来表示题目中说的栈,现在关键问题就是如何找到中位数. 可以用二分答案+树状数组的方法 由于每个元素最大不超过1e5,因此开一个大小为1e5的树状数组来存储 ...

  5. SDNUOJ 1665-1668(树状数组的应用)

    这篇文章写的很详细: 链接 这个b站上的视频讲的也很透彻: 链接 什么是树形数组: 树形数组是一种用来维护前缀和的工具,上图中序列上的就是树形数组,它虽然长得像个树,但是确是一个数组,比如上面的t[4 ...

  6. 【dfs序+树状数组】多次更新+求结点子树和操作,牛客小白月赛24 I题 求和

    前置知识点 dfs遍历 树状数组/线段树知识 链接 I题 求和. 题意 已知有 n 个节点,有 n−1 条边,形成一个树的结构. 给定一个根节点 k,每个节点都有一个权值,节点i的权值为 vi 给 m ...

  7. hdu2852(2009多校第四场) 树状数组求区间第k大的数 两种方法

    二分查找n*logn*logn 比较容易理解 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm& ...

  8. js 数组 实现 完全树_算法和数据结构 | 树状数组(Binary Indexed Tree)

    本文来源于力扣圈子,作者:胡小旭.点击查看原文 力扣​leetcode-cn.com 树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为 Fenwick 树.其初 ...

  9. jquery 遍历java对象,js/jquery遍历对象和数组的方法分析【forEach,map与each方法】...

    本文实例讲述了js/jquery遍历对象和数组的方法.分享给大家供大家参考,具体如下: JS forEach方法 arr[].forEach(function(value,index,array){ ...

最新文章

  1. Angularjs 中select回显后重复选项的解决
  2. VC++编程实现多显示器控制(复制、横屏、纵屏,显示器个数)
  3. PS网页设计教程XXIX——如何在PS中设计一个画廊布局
  4. access设置0字段为null是因为类型转换失败_Apache Pulsar 2.6.1 版本正式发布:2.6.0 加强版,新增 OAuth2 支持
  5. HEVC算法和体系结构:预测编码之帧内预测
  6. springMVC接收数据和响应返回
  7. 【算法】删去k个数字后的最小值
  8. 恩智浦智能车入门——一定避免那些坑
  9. java打印sscil码_SSCI期刊投稿指南库
  10. 在mini2440上面搞定CC2500物理层驱动
  11. 机械制造技术基础【3】
  12. 径向渐变加阴影html,CSS3 径向渐变(radial-gradient)
  13. 06-1-SVM原理
  14. JS 面试问题: 手写 new
  15. 【C语言】-关于strlen的介绍以及三种模拟实现的方法
  16. CESM简单应用:将HadiSST作为海温强迫场进行CESM控制实验 -compset F FC5 FCN
  17. 让你流泪的不是毕业,而是无法再重走一次的青春
  18. GPS北斗卫星授时服务器(NTP时钟)设计及方案应用
  19. 3. 使用K8S部署tomcat
  20. [软件] NSS2.2一款用于知识图谱与网络科学服务的软件

热门文章

  1. unipp怎么打包微信公众号_uni-app 打包 app
  2. 通关Android Lint
  3. 小米9 王者荣耀 获取金币/经验周上限 教程
  4. 「1114」Family Property
  5. 车牌识别系统开发记录(二) 车牌定位
  6. Office2003安装时,自动输入25位密钥的快速工具
  7. ubuntu18.04 systemctl
  8. 南卡与vivo蓝牙耳机哪个好?南卡小音舱与vivo TWS 2对比评测
  9. DLNA 共享多媒体电脑到电视(Win11)
  10. el-tree设置树状图样式