Javascript树遍历算法 [英] Javascript Tree Traversal Algorithm
本文介绍了Javascript树遍历算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要以深度优先的方式遍历树结构的帮助。我无法想出一个算法来正确地做到这一点。
I need help traversing a tree structure in a depth first fashion. I can't come up with an algorithm to do it properly.
我的输入是:
[
["A", "B", "C"],
["1", "2"],
["a", "b", "c", "d"]
]
输出应该采取表格:
[
"A/1/a", "A/1/b", "A/1/c", "A/1/d",
"A/2/a", "A/2/b", "A/2/c", "A/2/d",
"B/1/a", "B/1/b", "B/1/c", "B/1/d",
"B/2/a", "B/2/b", "B/2/c", "B/2/d",
"C/1/a", "C/1/b", "C/1/c", "C/1/d",
"C/2/a", "C/2/b", "C/2/c", "C/2/d"
]
推荐答案
这应该可以胜任:
function traverse(arr) {
var first = arr[0];
var ret = [];
if (arr.length == 1) {
for (var i = 0; i < first.length; i++) {
ret.push(first[i]);
}
} else {
for (var i = 0; i < first.length; i++) {
var inn = traverse(arr.slice(1));
for (var j = 0; j < inn.length; j++) {
ret.push(first[i] + '/' + inn[j]);
}
}
}
return ret;
}
var inp = [
["A", "B", "C"],
["1", "2"],
["a", "b", "c", "d"]
];
var out = traverse(inp);
console.log(out);
这篇关于Javascript树遍历算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文