JavaScript关于多叉树的递归遍历和非递归遍历算法分享

本文主要和大家介绍了javascript实现多叉树的递归遍历和非递归遍历算法,结合实例形式详细分析了javascript多叉树针对json节点的递归与非递归遍历相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。

演示之前的准备工作

演示项目的文件结构:

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

解释一下各个文件:

立即学习“Java免费学习笔记(深入)”;

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

nbsp;html>           www.jb51.net js多叉树遍历                递归遍历:    
  非递归遍历:   

登录后复制

递归遍历

recurrenceTree.js

// 遍历单个节点function traverseNode(node){  var pObj = document.getElementById("app");  pObj.innerHTML = pObj.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 

非递归遍历

noRecurrenceTree.js

// 遍历单个节点function traverseNode2(node){  var pObj2 = document.getElementById("app2");  pObj2.innerHTML = pObj2.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关于多叉树的递归遍历和非递归遍历算法分享

相关推荐:

关于二叉树的非递归遍历实例代码分享

php使用递归遍历指定文件夹内的文件实现方法

PHP递归遍历指定文件夹内的文件实现方法

以上就是JavaScript关于多叉树的递归遍历和非递归遍历算法分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2786807.html

(0)
上一篇 2025年3月8日 17:53:31
下一篇 2025年3月8日 17:53:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 10种频率最高的Javascrip错误

    数据才是王道,我们收集并分析了出现频次排前 10 的 javascript 错误。 rollbar 会收集每个项目的所有错误,并总结每个错误发生的次数。我们通过根据 “指纹”(rollbar 用到的一种算法,详见:https://rollb…

    2025年3月8日 编程技术
    200
  • JavaScript实现简单放大镜效果代码

    本文主要和大家介绍了原生javascript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下,希望能帮助到大家。 原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标…

    2025年3月8日
    200
  • javascript中9个常见错误

    本文主要和大家介绍分析javascript中9 个常见错误阻碍你进步的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。 分析javascript中9 个常见错误阻碍你进步 很多人尝试学习 JavaScript ,…

    编程技术 2025年3月8日
    200
  • 前端Javascript实现的机器学习类库实例

    web的整个体系已经在近几年中有了长足的发展, 虽然 javascript 和 node.js的使用案例还远远无法和java/python来媲美。 但是 也足够应用到很多机器学习的环境中去啦。而且最大的优势在于 – 一个浏览器就…

    2025年3月8日 编程技术
    200
  • JavaScript作用域和闭包详解

    作用域和闭包在javascript里非常重要。但是在我最初学习javascript的时候,却很难理解。我们先从作用域开始。本文主要和大家介绍了javascript作用域和闭包,希望能帮助大家更好的理解javascript作用域和闭包。 作用…

    2025年3月8日 编程技术
    200
  • 使JavaScript进行断舍离的函数分享

    本文主要和大家介绍了用函数式编程对javascript进行断舍离,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 关于DHTML DHTML是Dynamic HTML的简称,就是动态的html…

    编程技术 2025年3月8日
    200
  • JavaScript中的RegExp对象解析

    正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用作按照“给定模式”匹配文本的工具。比如,正则表达式给出一个 email 地址的模式,然后用它来确定一个字符串是否为 ema…

    编程技术 2025年3月8日
    200
  • JavaScript数组进化与性能分析

    正式开始前需要声明,本文并不是要讲解 javascript 数组基础知识,也不会涉及语法和使用案例。本文讲得更多的是内存、优化、语法差异、性能、近来的演进。本文主要和大家介绍javascript 数组的进化与性能分析,本文讲得更多的是内存、…

    2025年3月8日
    200
  • JavaScript实现HTML5游戏断线自动重连

    断线重连的需求一断线重连原理二游戏内自动重连不刷新三刷新游戏自动重连重连数据locationreplace重置url重连四实际项目中处理重连机制最后的总结断线重连的需求,尤其是手机上,会因为网络的不稳定或者其他原因,导致用户的socket链…

    编程技术 2025年3月8日
    200
  • JavaScript实现斑马线表格示例分享

    虽然现在有很多框架可以轻松的实现斑马线效果,而且兼容性也很不错,比如bootstrap,但是不可否认的是使用javascript实现的是兼容性最强的(浏览器不支持或禁止javascript脚本除外),所以今天使用原生js实现了一个斑马线效果…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论