图构造

const graph = {    0: [1, 2],    1: [2, 4],    2: [0, 3],    3: [],    4: []}

  1. 深度优先
const dfs = (root) => {    const visited = new Set()    const fn = (n) => {        console.log(n)        visited.add(n)        graph[n].forEach(c => {            if (!visited.has(c)) {                fn(c)            }        })    }    fn(root)}dfs(0)

  1. 广度优先
const bfs = (root) => {    const visited = new Set()    const q = [root]    visited.add(root)    while(q.length) {        const n = q.shift()        console.log(n)        graph[n].forEach(c => {            if (!visited.has(c)) {                q.push(c)                visited.add(c)            }        })    }}bfs(0)