zoukankan      html  css  js  c++  java
  • 基础深度优先搜索

    /*深度优先搜索:
    1、应该存放已访问过的结点在栈中,以便回溯
    //我想错了,这里并不需要加入栈,因为我们用的是递归,
    递归的本质就是一个栈吧~~
    果然实践是检验真理的唯一标准
    2、有visited[]数组标记是否访问过
    */

    #include<iostream>
    #include<vector>
    using namespace std;
    int arr_list[100][100],visited[100],n,m;
    vector <int> v;
    void dfs(int k){
        for(int i=1;i<=m;i++){
            if(arr_list[k][i]==1&&visited[i]==0){//有边的话并且没有访问过的话
                visited[i]=1;
                v.push_back(i);
                cout<<i<<" i"<<endl;
                dfs(i);
            }
    
        }
    }
    int main(){
        int f,t;   //n是边数,m是顶点数,默认为  1,2,3,....m
        while(cin>>n>>m){
            memset(arr_list,0,sizeof(arr_list));
            memset(visited,0,sizeof(visited));
            for(int i=0;i<n;i++){
                cin>>f>>t;
                arr_list[f][t]=1;
            }
            //假设从1开始
            dfs(1);
            visited[1]=1;
            
        }
        return 0;
    }
    

      

  • 相关阅读:
    Pyton项目打包成exe文件
    App数据指标
    电商基础指标体系
    Matplotlib复杂作图
    Sklearn之聚类分析
    Seaborn可视化
    Matplotlib可视化2
    Matplotlib可视化1
    Pandas可视化
    Linux常用指令(3)
  • 原文地址:https://www.cnblogs.com/wintersong/p/5008190.html
Copyright © 2011-2022 走看看