dfs&bfs

let tree = {
    val:'a',
    left:{
        val:'b',
        left:{
            val:'d'
        },
        right:{
            val:'e'
        }
    },
    right:{
        val:'c',
        left:{
            val:'f'
        },
        right:{
            val:'g'
        }
    }
}

function dfs(obj = tree,cb = console.log){
    for(let k in obj){
        if(obj[k] instanceof Object){
            dfs(obj[k],cb)
        }else{
            cb(obj[k])
        }
    }
}

function bfs(obj = tree,cb = console.log){
    let arr = []
    arr.push(obj)
    while(arr.length){
        let node = arr.shift()
        cb(node && node.val)
        node.left && arr.push(node.left)
        node.right && arr.push(node.right)
    }
}

对dfs&bfs最浅显的理解及coding demo

原文地址:https://www.cnblogs.com/zhenjianyu/p/13991941.html