过程
- 类似树的层序遍历
- 按层来遍历
- 顶层为某个顶点
- 第二层为顶层的所有邻接点
- 第三层为第二层各个邻接点的所有邻接点
- …
性质
广度优先搜索的生成树高度是最小的
实现方式
- 使用迭代就可以实现
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]