JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例

这篇文章主要介绍了javascript实现多叉树的递归遍历和非递归遍历算法,结合实例形式详细分析了javascript多叉树针对json节点的递归与非递归遍历相关操作技巧,对javascript感兴趣的朋友可以参考下

本文实例讲述了JavaScript实现多叉树的递归遍历和非递归遍历算法操作。分享给大家供大家参考,具体如下:

演示之前的准备工作

演示项目的文件结构:

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.php.cn 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带来帮助!!

相关推荐:

js实现抽奖系统功能代码分享

本文主要和大家详细介绍了一个关于抽奖系统的题目之js抽奖系统功能,具有一定的参考价....

实例详解js中ajax访问

本文主要和大家介绍原生js中ajax访问的实例详解的相关资料,希望通过本文大家能够掌握理....

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

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

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

(0)
上一篇 2025年3月8日 17:53:49
下一篇 2025年3月8日 17:55:20

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

相关推荐

  • js中let和var如何定义变量

    js中let和var都可以定义变量,本文主要和大家介绍js中let和var定义变量的区别,非常不错,具有参考借鉴价值,需要的朋友可以参考下,希望能帮助到大家。 javascript 严格模式 第一次接触let关键字,有一个要非常非常要注意的…

    编程技术 2025年3月8日
    200
  • Nuxt.js Vue服务端渲染详解

    nuxt.js 十分简单易用。一个简单的项目只需将 nuxt 添加为依赖组件即可。本文主要和大家介绍了nuxt.js vue服务端渲染摸索,给大家做个参考,希望能帮助到大家。 Vue因其简单易懂的API、高效的数据绑定和灵活的组件系统,受到…

    编程技术 2025年3月8日
    200
  • JavaScript关于多叉树的递归遍历和非递归遍历算法分享

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

    2025年3月8日
    200
  • 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

发表回复

登录后才能评论