图的深度遍历

    xiaoxiao2026-02-26  7

    图的深度优先遍历类似于二叉树的前序遍历,利用递归的思想,遍历所有的顶点。

    代码如下:

    #include <bits/stdc++.h> using namespace std; int v[110]; int arc[110][110]; int flag; void DFS(int i,int k){/*利用递归的思想,深度优先遍历图中的顶点*/     if(!flag){         cout<<i;         flag=1;     }     else{         cout<<" "<<i;     }     v[i]=1;     for(int j=0;j<k;j++){         if(arc[i][j]&&!v[j])             DFS(j,k);     } } int main(){     int n,m,k,u,b,i;     cin>>n;     while(n--){         memset(v,0,sizeof(v));         memset(arc,0,sizeof(arc));         cin>>k>>m;         for(i=0;i<m;i++){/*建立邻接矩阵来存储图的各个顶点*/             cin>>u>>b;             arc[u][b]=arc[b][u]=1;         }        flag=0;        DFS(0,k);        cout<<endl;     }     return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1307398.html
    最新回复(0)