7
寻找最短路径时,广度优先搜索如何工作?
我已经进行了一些研究,但似乎缺少该算法的一小部分。我了解广度优先搜索的工作原理,但我不了解它如何将我带到特定的路径,而不是仅仅告诉我每个节点可以到达的位置。我想解释我的困惑的最简单方法是提供一个示例: 例如,假设我有一个这样的图形: 我的目标是从A到E(所有边均未加权)。 我从A开始,因为那是我的血统。我排队A,然后立即将A出队并对其进行探索。因为A连接到B和D,所以得到B和D。因此,我将B和D都排队。 我将B出队并进行探索,发现它导致了A(已经探索过)和C,因此我将C排队。然后出队D,发现它导致了我的目标E。然后我将C出队,并发现它也导致了我的目标E。 我从逻辑上知道最快的路径是A-> D-> E,但是我不确定广度优先搜索到底有多大帮助-我应该如何记录路径,以便在完成后可以分析结果并查看最短的路径是A-> D-> E? 另外,请注意,我实际上并没有使用树,因此没有“父”节点,只有子节点。