美文网首页
深度优先和广度优先遍历

深度优先和广度优先遍历

作者: lvyweb | 来源:发表于2023-11-06 11:05 被阅读0次

    图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历。遍历过程中得到的顶点序列称为图遍历序列。
    图的遍历过程中,根据搜索方法的不同,又可以划分为两种搜索策略:+
    深度优先搜索(DFS,Depth First Search)
    广度优先搜索(BFS,Breadth First Search)

    实现深度优先遍历的关键在于回溯,实现广度优先遍历的关键在于回放。

    const tree  = 
        {
            val:'a',
            children:[
                {
                    val:'b',
                    children:[{
                        val:'c',
                        children:[]
                      },
                      {
                        val:'d',
                        children:[]
                      }
                    ]
                },
                {
                    val:'e',
                    children:[{
                        val:'f',
                        children:[]
                      },
                      {
                        val:'g',
                        children:[]
                      }
                    ]
                },
            ]
        }
    //深度优先遍历
    const dfs = (n)=>{
        console.log(n.val)
        n.children.forEach(item=>{
            dfs(item)
        })
    }
    // dfs(tree)
    
    //广度遍历
    const guand = (n)=>{
        const q = [n]
        while(q.length>0){
            const root = q.shift()
            console.log(root.val)
            root.children.forEach(item=>{
                q.push(item)
            })
        }
    }
    guand(tree)
    //二叉树的先中后
    

    相关文章

      网友评论

          本文标题:深度优先和广度优先遍历

          本文链接:https://www.haomeiwen.com/subject/urntwdtx.html