5.3 图的遍历

1. 深度优先遍历(Depth_First_Search DFS)

算法思路,访问顶点,对顶点的邻顶点依次进行深度优先遍历。

void DFS(GraphAdjList GL, int i)
{
    EdgeNode *p;
    visited[i] = TRUE;//顶点标记为已访问
    
    printf()//输出顶点

    p = GL->adjList[i].firstedge;
    while(p)//遍历该顶点的邻顶点
    {
        if(!visied[p->adjvex])//如果顶点未被访问则对其进行DFS  
            DFS(GL, p->adjvex);
        p = p->next;
    } 
}

2. 广度优先遍历 (Breadth_First_Search BFS)

与树的层次遍历思路基本一致

  1. 第一个顶点入队
  2. 队头的顶点的邻顶点入队
  3. 队头出队,回到第二步

你可能感兴趣的:(5.3 图的遍历)