javascript - 如何找到二维数组中的所有路径?

标签 javascript arrays traversal depth-first-search breadth-first-search

我正在尝试编写 javascript 来映射从根到叶的所有唯一路径,每个节点都可以连接到下一行的相邻节点。例如,根可以作为 4,2 或 4,4 连接到下一行。叶子的唯一路径是 4,2,4,2,1

             4
            2 4
           6 4 2
          7 4 2 1
         9 4 2 1 4

我能够将三 Angular 形转换为结构如下的二维数组。

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

我是深度优先搜索和广度优先搜索的新手。这些算法可以实现吗?

最佳答案

由于您正在寻找所有路径,因此这是简单递归的学校示例:

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);

关于javascript - 如何找到二维数组中的所有路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444792/

相关文章:

Javascript 错误 - 无法调用 null 的方法 'appendChild' (svgicons)

javascript - 使用 JINT 从 javascript 文件读取 JSON 对象

c - 遍历 n-Ary 树 Level Order

Javascript:使用 "for"遍历 2 级深度数组不会产生另一个数组

javascript - 使用ajax功能后页面保持重新加载

javascript - 在Firefox附加SDK扩展中的“onInstalled”上执行脚本

java - 从数组中查找数字的所有索引 (Java)

javascript - Jquery - 从带分隔符的字符串创建一个数组,然后计算它的值

c - 数组名是指针吗?

javascript - 遍历到距离点击jquery的元素最近的元素