// 实现一个深度优先搜索算法(非递归)
function dfs(tree, name) {
// 请在这里实现
}
var tree = {
name: '中国',
children: [{
name: '北京',
children: [{
name: '朝阳群众'
},
{
name: '海淀区'
},
{
name: '昌平区'
}
]
},
{
name: '浙江省',
children: [{
name: '杭州市',
code: '0571',
},
{
name: '嘉兴市'
},
{
name: '绍兴市'
},
{
name: '宁波市'
}
]
}
]
};
function dfs(tree, name) {
// 请在这里实现
let temp = [];
temp.push(tree);
while (temp.length !== 0) {
const now = temp[temp.length - 1];
if (!now.__childrenVisited && now.children && now.children.length > 0) {
now.__childrenVisited = true;
temp = temp.concat(now.children);
} else {
temp.pop();
if (now.name === name) {
return now;
}
}
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
文章标题:
文章字数:122
本文作者:泽鹿
发布时间:2019-07-29, 11:52:23
最后更新:2019-07-30, 17:02:16
原始链接:http://panyifei.github.io/2019/07/29/前端面试/代码/树/非递归深度遍历/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。