跳到主要内容

深度优先算法

深度优先搜索(Depth-First Search, DFS) 以深度为优先级,沿着一条路径尽可能深地搜索,直到到达叶子节点,然后再回溯到上一个节点,继续搜索其他路径。DFS 通常用于解决回溯问题、拓扑排序以及图的连通性问题等。 深度优先遍历(Depth-First Search, DFS)和广度优先遍历(Breadth-First Search, BFS)是两种常用的树(或图)遍历算法。以下是使用原生 JavaScript 实现这两种遍历算法的示例:

深度优先遍历(DFS):

// 树结构示例
const tree = {
value: "A",
children: [
{
value: "B",
children: [
{ value: "D", children: [] },
{ value: "E", children: [] },
],
},
{
value: "C",
children: [
{ value: "F", children: [] },
{ value: "G", children: [] },
],
},
],
};

// 深度优先遍历函数
function dfs(node) {
console.log(node.value); // 访问当前节点
node.children.forEach((child) => dfs(child)); // 递归遍历子节点
}

// 执行深度优先遍历
dfs(tree);