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. 队头出队,回到第二步
    原文作者:个革马
    原文地址: https://www.jianshu.com/p/12c1d57f3d95
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞