广度优先搜索

首先访问这个顶点,然后找出刚访问这个结点所有未被访问的邻结点,

访问完后再访问这些结点中第一个邻结点的所有结点,重复此方法,直到所有结点都被访问完为止。
详细参考(https://blog.csdn.net/qq_37482202/article/details/89513877)

image.png


let node = {

    name: '我',

    children: [

        {

            name: 'Alisa',

            children: [{

                name:"贝尔",

                children:[]

            }]

        },

        {

            name: "BOB",

            children: [{

                name: "肖战",

                children: [{

                    name:'王一博',

                    children:[]

                }]

            }]

        }

    ]

}

function wideTraversal(node) {

    let nodes = [],

        i = 0

    while (node != null) {

        nodes.push(node)

        node = nodes[i++]

        let childrens = node.children

        for (let i = 0; i < childrens.length; i++) {

            nodes.push(childrens[i])

        }

    }

    return nodes

}

const arr = wideTraversal(node);

console.log(arr);

你可能感兴趣的:(广度优先搜索)