← 中文资源

简体中文版本

无权图 BFS 最短路径(JavaScript)

用广度优先搜索在无权图中找最短路径,用前驱映射重建路径。

阅读英文原文

功能说明

无权图 BFS 最短路径是一个面向data-fetching场景的javascript代码示例。用广度优先搜索在无权图中找最短路径,用前驱映射重建路径。该示例展示了如何在实际项目中运用这一技术,代码结构清晰,便于理解和复用。

关键实现

该示例使用javascript语言实现,核心逻辑封装在函数中。代码遵循语言惯用风格,处理了边界情况,并考虑了性能与可读性的平衡。tags 标签包括:bfs、graph、shortest-path,方便在平台上检索同类示例。

使用注意

使用本示例时需要注意输入约束和边界条件。该示例为代码片段(isSnippet),可直接嵌入到项目中使用。建议在实际应用前,根据业务需求调整参数和错误处理* 建议在实际应用前,根据业务需求调整参数和错误处理策略。relatedExamples 中列出了相关的其他示例,可供参考学习。

验证方式

可通过编写单元测试验证该示例的正确性。测试应覆盖正常输入、边界值和异常情况。确保在目标运行环境中测试代码的兼容性和性能表现。updatedDate 为 2026-10-25,已通过审核并发布。

代码示例

function bfsShortestPath(graph, start, end) {
  if (start === end) return [start];
  const queue = [start];
  const visited = new Set([start]);
  const parent = new Map();
  while (queue.length) {
    const node = queue.shift();
    for (const neighbor of graph[node] || []) {
      if (visited.has(neighbor)) continue;
      visited.add(neighbor);
      parent.set(neighbor, node);
      if (neighbor === end) {
        const path = [end];
        let cur = end;
        while (parent.has(cur)) { cur = parent.get(cur); path.unshift(cur); }
        return path;
      }
      queue.push(neighbor);
    }
  }
  return null;
}