Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void _recursive_topological(int from)
- {
- visited_topo[from] = true;
- //go through neighbors
- for(auto element: graph[from])
- {
- if(!visited_topo[element.vertex_number])
- {
- visited_topo[element.vertex_number] = true;
- _recursive_topological(element.vertex_number);
- }
- }
- ordered_nodes.push_back(from);
- }
- void topological_sort()
- {
- for(int i=0; i < graph.size();i++)
- {
- if(!visited_topo[i])
- _recursive_topological(i);
- }
- ordered_nodes.reverse();
- for(auto element : ordered_nodes)
- {
- std::cout << element << " ";
- }
- std::cout << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement