Matrix_code

graph - Euler Path & Tour

May 13th, 2016 (edited)
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. /* Conditions for undirected euler path
  2. 1. Graph connected
  3. 2. Every vertex but almost two vertex can in degree have odd number. One is Starting point another is finish
  4. */
  5. vector<int> G[N];
  6. int Adj[N][N];// Adjacency Matrix (1-2,2-1,both added)
  7. vector<int> euler;
  8. void dfs(int u)
  9. {
  10.     while(G[u].size()){
  11.         int v = G[u].back(); G[u].pop_back();
  12.         if(Adj[u][v]) {
  13.             Adj[u][v]--;
  14.             Adj[v][u]--;
  15.             dfs(v);
  16.         }
  17.     }
  18.     euler.push_back(u);
  19. }
  20.  
  21. /*
  22. Conditions For directed euler path:
  23. 1. Graph connected
  24. 2. Every vertex but atmost two vertex can indegree != outdegree.
  25. 3. abs(indegree- outdegre) <=1
  26. */
  27. vi G[N];
  28. int Adj[N][N];
  29. stack<int> euler;
  30. void dfs(int u)
  31. {
  32.      
  33.       while(G[u].Sz) {
  34.             int k=G[u].back(); G[u].pop_back();
  35.             if(Adj[u][k] ) {
  36.                   Adj[u][k] --;
  37.                   dfs(k);
  38.             }
  39.       }
  40.       euler.push(u);
  41. }
Add Comment
Please, Sign In to add comment