图的深度优先遍历算法
时间: 2023-12-05 16:41:50 浏览: 83
JavaScript树的深度优先遍历和广度优先遍历算法示例
图的深度优先遍历算法是一种用于遍历或搜索树或图的算法。它从根节点或任意节点开始,沿着树的深度遍历树的节点,尽可能深地搜索树的分支,直到到达叶子节点为止。然后回溯到前一个节点,继续搜索另一个分支,直到遍历完整棵树。
以下是JavaScript实现图的深度优先遍历算法的代码:
```javascript
// 定义图的邻接表表示法
const graph = {
0: [1, 2],
1: [2],
2: [0, 3],
3: [3]
};
// 定义访问数组
const visited = new Array(Object.keys(graph).length).fill(false);
// 定义深度优先遍历函数
function dfs(v) {
visited[v] = true;
console.log(v);
for (let i = 0; i < graph[v].length; i++) {
const next = graph[v][i];
if (!visited[next]) {
dfs(next);
}
}
}
// 调用深度优先遍历函数
dfs(2);
```
阅读全文