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. 队头出队,回到第二步
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • -DFS(Depth First Search):深度优先搜索 访问完一个顶点的所有邻接点之后,会按原路返回,对应...
    Spicy_Crayfish阅读 7,848评论 1 0
  • 图的遍历主要有深度优先搜索 DFS(depth-first search) 和广度优先搜索BFS( breadth...
    lesliefang阅读 18,027评论 1 11
  • 图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对...
    Alent阅读 6,872评论 1 22
  • 在给出图的定义后第一个问题就是如何遍历图的所有顶点,有两种最基础的图遍历算法。如果给图添加更多的特征和属性,将产生...
    9bc96fd72f8e阅读 10,360评论 0 1
  • 最近一直在想以一个什么样的契机来开始记录自己的生活,终于的终于决定以这场人生中第一次自己一个人看的电影作为记录的开...
    阿宅树洞阅读 2,958评论 0 0