图的遍历

深度优先遍历:

  邻接矩阵版

bool G[1000][1000];
bool visited[1000]; 
void dfs(int v){
    visited[v]=true;
    for(int i=1;i<=n;i++){
        if(G[v][i]==true){
            if(visited[i]==false){
                dfs(i);
            }    
        }
    }
}
void dfsTraverse(){
    fill(visited,visited+n+1,false);    //初始化visited数组 
    for(int i=1;i<=n;i++){                //n是图中顶点数量 
        if(visited[i]==false){
            dfs(i);
        }
    }
}

  邻接表版

vector<int> G[1000];
bool visited[1000]; 
void dfs(int v){
    visited[v]=true;
    for(int i=0;i<G[v].size();i++){
        if(G[v][i]==true){
            if(visited[i]==false){
                dfs(i);
            }    
        }
    }
}
void dfsTraverse(){
    fill(visited,visited+n+1,false);    //初始化visited数组 
    for(int i=1;i<=n;i++){                //n是图中顶点数量 
        if(visited[i]==false){
            dfs(i);
        }
    }
}

广度优先遍历

  邻接矩阵版:

void bfs(int v){
    queue<int> q;
    q.push(v);
    while(!q.empty()){
        int temp=q.front();
        q.pop();
        visited[v]=true;
        for(int i=1;i<=n;i++){
            if(G[temp][i]==true&&visited[i]==false){
                visited[i]=true;
                q.push(i);
            }
        }
    }
}
void bfsTraverse(){
    fill(visited,visited+n+1,false);    //初始化visited数组 
    for(int i=1;i<=n;i++){                //n是图中顶点数量 
        if(visited[i]==false){
            bfs(i);
        }
    }
}

  邻接表版:

vector<int> G[1000];
bool visited[1000]; 
void bfs(int v){
    queue<int> q;
    q.push(v);
    while(!q.empty()){
        int temp=q.front();
        q.pop();
        visited[v]=true;
        for(int i=0;i<G[temp].size();i++){
            if(G[temp][i]==true&&visited[i]==false){
                visited[i]=true;
                q.push(i);
            }
        }
    }
}
void bfsTraverse(){
    fill(visited,visited+n+1,false);    //初始化visited数组 
    for(int i=1;i<=n;i++){                //n是图中顶点数量 
        if(visited[i]==false){
            bfs(i);
        }
    }
}
原文地址:https://www.cnblogs.com/foodie-nils/p/13337050.html