图的遍历bfs和dfs
从图中某个顶点出发,沿路径使图中每个顶点被访问且仅被访问一次的过程,称为图的遍历。分深度优先搜索(depth first search)和广度优先搜索(broad first search)
dfs:
①访问给定的起始顶点v,置v为当前顶点;
②置当前顶点的下一未被访问过的邻接点为当前顶点,访问该顶点;
③重复②,直到当前顶点的所有邻接点都被访问过;
④沿搜索路径回退,退到尚有邻接点未被访问过的某结点,将该结点作为当前结点,转②重复以上步骤,直到所有顶点被
访问过为止。
可用栈实现,沿路径向前, 并回朔,每次访问后置已访问过标志。
bfs:
① 访问给定的起始顶点v, v入队列;
② 取出队首u, 对u的所有未被访问过的邻接点, 依次访问后置于队尾(下图右边)。
③ 重复②,直到队列为空。
用队列实现,每次访问后置已访问过标志。