广度优先算法(Breadth-First Search),同广度优先搜索,又称作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索演算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。广度优先搜索的实现一般采用open-closed表。
实现目标:
使用go语言实现广度优先算法走如下图的迷宫,使路线最短:
(第一行两数分别表示行数和列数,0代表路,1代表墙,从左上角进,右下角出)
迷宫样式文件
原理分析:
经过观察总结可知,有三种类型的点。
类型一:
已经发现,但未探索过得点。
类型二:
已经发现,且探索过得点。
类型三:
尚未发现的点。