图的遍历:从图中某一顶点出发访遍其余顶点且使每个顶点仅被访问一次。
1.深度优先遍历(深度优先搜索):DFS
从图中某一顶点出发,访问此顶点然后访问其邻接点,直到图中所有和该顶点有路径相通的顶点都被访问。若图中还有未被访问到的顶点,则选其中一点继续重复上一过程,直到图中所有顶点都被访问。
如图:使用深度优先遍历,选一顶点:A
把所有和该顶点有路径相通的顶点都访问一遍,比如全部向右走,A→B→C→D→E→F→G
→H,无路可走了,开始原路返回,返回到D时
,访问 I ,然后原路返回到顶点A。若图中还有未被访问的顶点,则选其中一点继续重复上一过程,直到图中所有顶点都被访问。
2.广度优先遍历(广度优先搜索):BFS
从图中某一顶点出发,把该顶点的所有邻接点全部访问一遍,再把该顶点的所有邻接点的邻接点全部访问一遍,直到图中全部顶点都被访问。
如图:把刚才的图形变一下形
和层序遍历一样,用队列把每层元素入队再出队,把下一层元素入队再出队直到队列为空。