Advertisement
aidul23

Transpose of a directed graph

Aug 30th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void addEdge(vector<int> adj[], int src, int dest)
  5. {
  6.     adj[src].push_back(dest);
  7. }
  8.  
  9. void displayGraph(vector<int> adj[], int v)
  10. {
  11.     for (int i = 0; i < v; i++) {
  12.         cout << i << "--> ";
  13.         for (int j = 0; j < adj[i].size(); j++)
  14.             cout << adj[i][j] << " ";
  15.         cout << "\n";
  16.     }
  17. }
  18. void transposeGraph(vector<int> adj[], vector<int> transpose[], int v)
  19. {
  20.     for (int i = 0; i < v; i++)
  21.         for (int j = 0; j < adj[i].size(); j++)
  22.             addEdge(transpose, adj[i][j], i);
  23. }
  24.  
  25. int main()
  26. {
  27.     int v = 5;
  28.     vector<int> adj[v];
  29.     addEdge(adj, 0, 1);
  30.     addEdge(adj, 0, 4);
  31.     addEdge(adj, 0, 3);
  32.     addEdge(adj, 2, 0);
  33.     addEdge(adj, 3, 2);
  34.     addEdge(adj, 4, 1);
  35.     addEdge(adj, 4, 3);
  36.  
  37.     vector<int> transpose[v];
  38.     transposeGraph(adj, transpose, v);
  39.     displayGraph(transpose, v);
  40.  
  41.     return 0;
  42. }
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement