JavaScript中深度优先遍历和广度优先遍历算法怎么用
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍"JavaScript中深度优先遍历和广度优先遍历算法怎么用",在日常操作中,相信很多人在JavaScript中深度优先遍历和广度优先遍历算法怎么用问题上存在疑惑,小编查阅了各式资料,
千家信息网最后更新 2025年01月24日JavaScript中深度优先遍历和广度优先遍历算法怎么用
这篇文章主要介绍"JavaScript中深度优先遍历和广度优先遍历算法怎么用",在日常操作中,相信很多人在JavaScript中深度优先遍历和广度优先遍历算法怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JavaScript中深度优先遍历和广度优先遍历算法怎么用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
具体如下:
1、深度优先遍历的递归写法
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、深度优先遍历的非递归写法
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、广度优先遍历的递归写法:
报错: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、广度优先遍历的非递归写法
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;}
到此,关于"JavaScript中深度优先遍历和广度优先遍历算法怎么用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
广度
深度
算法
写法
递归
学习
更多
帮助
实用
接下来
文章
方法
理论
知识
篇文章
网站
资料
跟着
问题
好用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
三种软件开发方法
当前服务器繁忙
赞美软件开发人员的句子
软件开发公司办公用电脑配置
群晖nas上安数据库
网络安全手抄报的内容应该怎么写
梦幻西游各服务器等级人数统计
没后缀的数据库文件
数据库与应用技术学什么
网络安全试点测试报告
数据库应用系统的开发过程
5000A软件开发模型
广东科学技术计算机网络技术
简述数据库的打开方式
信息数据软件开发公司
软件开发好评
浙江net软件开发哪家实惠
域服务器添加管理员用户
网络安全扫码技术的基本原理
青岛科技大学移动互联网
数据库创建用户名并登陆
网络安全议题大学生论文
2020好就业的软件开发
2018网络安全周总结报告
医院信息网络安全知识资料
苏铭服务器怎么样
battlebit服务器不匹配
数据库不仅能为多个用户服务
成都市软件开发有限公司
电力网络安全管理整改方法