利用BFS实现最短路

时间:2022-07-16 11:37:30

首先,我们要知道BFS的思想,BFS全称是Breadth-First-Search。
二叉树的BFS:通过BFS访问,它们的访问顺序是它们到根节点距离从小到大的排序。
图的BFS:同样的,离起点越近,越早被访问到。

例题1: Abbott的复仇(Abbott's Revenge,ACM/ICPC World Finals 2000,UVa 816)

题目描述:有一个最多包含9x9个交叉点的迷宫。输入起点、起始朝向、终点,求最短路
这个迷宫的特殊之处在于:进入一个交叉点的方向不同(NEWS:N朝上,E朝右,W朝左,S朝下),允许出去的方向也不同。
例如:1 2 WLF NR ER * 表示交叉点(1,2)有三个路标,(字符*为结束标志),如果进入该交叉点时的方向为W(左),则可以L(左转)或F(直行)。如果进入时方向为N(上)或者E(右),则只能R(右转)。

如图所示:
利用BFS实现最短路