我正在尝试编写javascript,它将映射从root到leaf的所有唯一路径,每个节点都可以连接到下一行的相邻节点。例如,根可以连接到下一行,如4,2或4,4。叶子的独特路径是4,2,4,2,1
4
2 4
6 4 2
7 4 2 1
9 4 2 1 4
我能够将三角形转换为像这样结构化的2D数组。
a[0] = [4]
a[1] = [2,4]
a[2] = [6,4,2]
a[3] = [7,4,2,1]
a[4] = [9,4,2,1,4]
我想找到从根到叶子的所有路径,例如
4,2,6,7,9
4,2,6,7,4
4,2,6,4,4
我是Depth First Search和广度优先搜索的新手。这可以用这些算法实现吗?
答案 0 :(得分:1)
由于您正在寻找所有路径,因此这是简单递归的学校示例:
var a = [];
a[0] = [4];
a[1] = [2,4];
a[2] = [6,4,2];
a[3] = [7,4,2,1];
a[4] = [9,4,2,1,4];
function r(s, v, h) { // string, vertical, horizontal
s = s + a[v][h];
if (v>3) {
console.log(s);
} else {
r(s, v+1, h);
r(s, v+1, h+1);
}
}
console.log('-----------------')
r('', 0, 0);