Graph Search
Graph Search
图搜索实际上就是反复寻找那种一边访问过,一边未访问过的边,找到后去访问那个边指向的未访问的节点,直到停止。这样就能够访问到所有reachable的节点。无论是有向图还是无向图,这种算法都可以被设计。如果出发点为s,而v被访问了,s到v一定有一个path。
BFS&DFS两种算法和其不同用途。
Breadth First Search
广度优先算法需要采用一个queue,先进先出。越靠上的节点就越容易被展开,深层的节点只有在浅处节点搞完之后才有机会。
Breadth First Search Algorithm
我们先把S给加到Q里,开始循环。从Q中取出头元素v,对于每个v的没有访问的邻居,都访问一下,并他们并把他们的孩子都扔进Q中。这个算法的复杂度是 O ( n s + m s ) O(n_{s}+m_{s}) O