想必大家应该非常精通两种搜索算法——也就是深度优先搜索dfs和广度优先搜索bfs了,这时好奇的宝宝们也许会问啦:深度和广度到底还有什么意思呢?其实它们还有另外一层含义——图的遍历。
相信在座的各位应该知道图是个啥玩意,应该也知道“遍历”是啥:所谓“遍历”,就是把图上的每个顶点都找一遍呗!但是要找可不能瞎找,要不会把自己找晕,咱这里就有两种“防晕”的好方法!正所谓“举例是理解的试金石”,咱就拿样例来说!
方法A
咱们可以一步一步向前去走:
从1出发,先去最小的2
然后从2出发,沿路到5
再从5出发......咦?没路了?好吧那就回去到2吧
出发点又到了2,这时候5已经到过啦,那就去6
6又没路了,好办!回到2,由于2通往的5和6都来过了,所以再回去到1,这时候1的路中2已经走过了,没走过的最前一个是3,那就在走到3
........
就这样一步一步走过去,可以得到顺序:
1 2 5 6 3 7 8 4
这种方法就是一步一步去尝试,先从一条路走到黑,走完了就回去找另一条