Advertisement
shabbyheart

Dfs Stack

Jun 16th, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int>adj[100];
  4. stack<int>stk;
  5. bool visited[100];
  6. void dfs(int src)
  7. {
  8.     stk.push(src);
  9.     visited[src]=true;
  10.     cout<<src<<" ";
  11.     while(!stk.empty())
  12.     {
  13.         int parent=stk.top();
  14.         stk.pop();
  15.         for(int i=0;i<adj[parent].size();i++)
  16.         {
  17.             int child=adj[parent][i];
  18.  
  19.             if(visited[child]==0)
  20.             {
  21.                 stk.push(parent);
  22.                 stk.push(child);
  23.                 visited[child]=1;
  24.                 cout<<child<<" ";
  25.                 break;
  26.             }
  27.         }
  28.     }
  29.  
  30. }
  31. int main()
  32. {
  33.     int node,edge,m,n;
  34.     cin>>node>>edge;
  35.     while(edge--)
  36.     {
  37.         cin>>m>>n;
  38.         adj[m].push_back(n);
  39.         adj[n].push_back(m);
  40.     }
  41.     dfs(1);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement