zoukankan      html  css  js  c++  java
  • 图的遍历DFS

    图的遍历DFS

    与树的深度优先遍历之间的联系

    树的深度优先遍历分为:先根,后根

    //树的先根遍历
    void PreOrder(TreeNode *R){
        if(R!=NULL){
            visit(R);				//访问根节点
            while(R还有下一个子树T)
                PreOrder(T);		//先根遍历下一棵子树
        }
    }
    

    新找到的相邻结点一定是没有访问过的。

    先根遍历序列:1,2,5,6,3,4,7,8

    图的深度优先遍历

    bool visited[MAX_VERTEX_NUM];	//初始值都为false
    
    void DFSTraverse(Graph G){		//对图G进行深度优先遍历
        for(v=0;v<G.vexnum;++v)
            visited[v]=FASLSE;		//初始化已访问标记数据
        for(v=0;v<G.vexnum;++v)		//本代码中是从v=0开始遍历
            if(!visited[v])
                DFS(G,v);
    }
    
    
    void DFS(Graph G,int v){		//从顶点v出发,深度优先遍历图G
        visit(v);					//访问顶点v
        visited[v] = TURE;			//设已访问标记
        for(w=FirstNeighbor(G,v);w>=0;w=NextNeighor(G,v,w))
            if(!visited[w]){		//w为u的尚未访问的邻接顶点
                DFS(G,w);
            }
    }
    

    复杂度分析

    深度优先遍历序列

    从1开始出发:12634785

    邻接表不同得到的序列也不同:

    从3出发:36215784

    从1出发:12678435

    深度优先生成树

    深度优先生成森林

    图的遍历与图的连通性

  • 相关阅读:
    WebSVN 2.3.3
    webSVN客户端(转) initOS的日志 网易博客
    分享:httping 2.0 发布,测试 HTTP 连接的工具
    ThriftUsageC++ Thrift Wiki
    硬盘接口:SCSI、IDE与SATA的区别
    把event sql导入数据库难点
    cpu插槽 LGA 1155
    Processing简介
    技嘉主板GAB75MD3V产品规格
    pci Express
  • 原文地址:https://www.cnblogs.com/jev-0987/p/13213434.html
Copyright © 2011-2022 走看看