【算法】深度优先和广度优先

图的遍历

以图中的某一个顶点出发遍历图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历

深度优先遍历

  • 有点类似于树的前序遍历

算法逻辑

  1. 从图中的某个顶点v出发,访问v
  2. 找到刚访问过的顶点的第一个未被访问的邻接点,访问该顶点。以该顶点为新顶点,重复此步骤,直至刚访问的顶点没有未被访问的邻接点为止
  3. 返回前一个访问过的且有未被访问的邻接点的顶点,找到该顶点的下一个未被访问的邻接点,访问该顶点
  4. 重复2,3,直到图中的所有顶点都被刚问过
    【算法】深度优先和广度优先

广度优先

  • 类似于树的层序遍历

算法描述

  1. 从图中的某个顶点v出发,访问v
  2. 依次访问v的各个未被访问过的邻接点
  3. 分别从这些邻接点出发,依次访问它们的邻接点,并使 被访问的顶点 先于 后被访问的顶点的邻接点 被访问。
  4. 重复步骤3,直到图中所有已被访问的顶点的邻接点都被访问到
    【算法】深度优先和广度优先