过程

  1. 类似树的层序遍历
  2. 按层来遍历
    1. 顶层为某个顶点
    2. 第二层为顶层的所有邻接点
    3. 第三层为第二层各个邻接点的所有邻接点

性质

广度优先搜索的生成树高度是最小的

实现方式

function breadthFirstSearch(root) {
    let queue = [];
    let result = [];
    
    if (root) {
        queue.push(root);
    }
    
    while (queue.length > 0) {
        let node = queue.shift();
        result.push(node.value);
        
        if (node.children) {
            for (let child of node.children) {
                queue.push(child);
            }
        }
    }
    
    return result;
}
// 示例树结构
let tree = {
    value: 1,
    children: [
        {
            value: 2,
            children: [
                { value: 4, children: [] },
                { value: 5, children: [] }
            ]
        },
        {
            value: 3,
            children: [
                { value: 6, children: [] },
                { value: 7, children: [] }
            ]
        }
    ]
};
console.log(breadthFirstSearch(tree)); // 输出: [1, 2, 3, 4, 5, 6, 7]