算法笔记(广度优先搜索)
-
广度优先搜索指出是否有从 A 到 B 的路径。
-
如果有,广度优先搜索将找出最短路径。
-
面临类似于寻找最短路径的问题时,可尝试使用图来建立模型,再使用广度优先搜索来解决问题。
-
有向图中的边为箭头,箭头的方向指定了关系的方向,例如,rama→adit 表示 rama 欠 adit 钱。
-
无向图中的边不带箭头,其中的关系是双向的,例如,ross - rachel 表示“ross 与 rachel 约会,而 rachel 也与 ross 约会”。
-
队列是先进先出(FIFO)的。
-
栈是后进先出(LIFO)的。
-
你需要按加入顺序检查搜索列表中的人,否则找到的就不是最短路径,因此搜索列表必须是队列。
-
对于检查过的人,务必不要再去检查,否则可能导致无限循环。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: