Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Conditions for undirected euler path
- 1. Graph connected
- 2. Every vertex but almost two vertex can in degree have odd number. One is Starting point another is finish
- */
- vector<int> G[N];
- int Adj[N][N];// Adjacency Matrix (1-2,2-1,both added)
- vector<int> euler;
- void dfs(int u)
- {
- while(G[u].size()){
- int v = G[u].back(); G[u].pop_back();
- if(Adj[u][v]) {
- Adj[u][v]--;
- Adj[v][u]--;
- dfs(v);
- }
- }
- euler.push_back(u);
- }
- /*
- Conditions For directed euler path:
- 1. Graph connected
- 2. Every vertex but atmost two vertex can indegree != outdegree.
- 3. abs(indegree- outdegre) <=1
- */
- vi G[N];
- int Adj[N][N];
- stack<int> euler;
- void dfs(int u)
- {
- while(G[u].Sz) {
- int k=G[u].back(); G[u].pop_back();
- if(Adj[u][k] ) {
- Adj[u][k] --;
- dfs(k);
- }
- }
- euler.push(u);
- }
Add Comment
Please, Sign In to add comment