zoukankan      html  css  js  c++  java
  • 【模板】深搜和广搜

    【模板】深搜和广搜

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<queue>
    #include<stack>
    #include<algorithm>
    #include<vector>
    #include<map>
    #define MAXN 0x3f3f3f3f
    using namespace std;
    int total=0;
        int n, m;
    bool vis[100001]={0};
    int t;
        vector<int> q[100001];
    queue<int> p;
    void dfs(int x)//深搜
    {
        vis[x] = 1;
            cout << x << ' ';
        for (int i = 0; i <q[x].size();i++)
        {
            if(!vis[q[x][i]])
            {
                vis[q[x][i]] = 1;
                dfs(q[x][i]);
            }
        }
    }
    void bfs(int x)//广搜
    {
        memset(vis, 0, sizeof(vis));
        p.push(x);
        vis[x] = 1;
        cout << x << ' ';
      while(!p.empty())
      {
           t = p.front();
          p.pop();
          for (int i = 0;i<q[t].size(); i++)
          {
             if(!vis[q[t][i]])
             {
                 vis[q[t][i]] = 1;
                 cout << q[t][i]<<' ';
                 p.push(q[t][i]);
             }
          }
      }
    }
    int main()
    {
        cin >> n >> m;
        for (int i = 1; i <=m;i++)
        {
            int x, y;
            cin >> x >> y;
            q[x].push_back(y);
        }
        for (int i = 1; i <= n;i++)
        {
            sort(q[i].begin(),q[i].end());//排序;
        }
        dfs(1);
        cout << endl;
        bfs(1);
        return 0;
    }
    
    
    
    
    
  • 相关阅读:
    3.4
    3.3 TensorFlow运行模型 ------- 会话
    3.2 TensorFlow数据模型 ---- 张量
    3.1 TensorFlow计算模型 --- 计算图
    寻找两个有序数组的中位数
    最长子串
    vector的遍历删除
    超时空大决战
    面经七
    面经五
  • 原文地址:https://www.cnblogs.com/a821403286/p/13693786.html
Copyright © 2011-2022 走看看