图 2021-03-22 数据结构与算法 数据结构 0 评论 深度优先遍历12345678910111213141516171819const graph = { 0: [1, 2], 1: [2], 2: [0, 3], 3: [3]}let visited = new Set() // 存储已经被访问数据const dfs = (n) => { console.log(n) visited.add(n) graph[n].forEach(e => { if (!visited.has(e)) { dfs(e) // 未访问数据继续递归 } })}dfs(2) // 确定起点 广度优先遍历12345678910111213let visited = new Set() // 存储已经被访问过的数据visited.add(2) // 增加起点值let q = [2] // 设定起点while (q.length) { let n = q.shift() // 弹出开头的 console.log(n); graph[n].map(e => { if (!visited.has(e)) { // 不存在才遍历节点 q.push(e) visited.add(e) } })}