应用BFS解题时,有几大关键点需要注意:
1.队列queue(重要)
队列queue是BFS的核心数据结构,记录当前广度遍历到的点。
2.邻接表/邻接矩阵(重要)
邻接关系数据结构泛指curr相邻的节点,比如说二维数组中,curr上下左右的位置就是相邻节点;或者,换一种理解,记录一个点可以通到的地方,即两个点之间的关系。
![](https://img.haomeiwen.com/i9404564/5dc71db5b039e13f.png)
3.访问记录列表visited(重要)
visited的主要作用是防止走回头路,大部分时候都是必须的,但是像一般的二叉树结构,没有子节点到父节点的指针,不会走回头路就不需要visited。
4.先驱、后驱(可选,记录路径)
先驱、后驱用于记录当前节点的前一个节点、后一个节点。
5.步数(可选,记录距离)
步数,是在遍历到每一层时,记录的step数,当前层遍历完后,step++,用于记录当前节点的距离。
附:
![](https://img.haomeiwen.com/i9404564/d296c32b4140eff7.png)
yo peace!
网友评论