What Simple Code in Java Does a Topological Sorting by Using Source Removal
A topological sorting is an ordering of vertices in a directed graph such that for every directed edge from vertex u to vertex v, u comes before v in the ordering. Topological sorting is useful in various applications, such as scheduling tasks and resolving dependencies.
One simple algorithm to perform topological sorting using source removal is:
java
public static void topologicalSort(List<Vertex> vertices) {
Queue<Vertex> queue = new LinkedList<>();
for (Vertex v : vertices) {
if (v.getInDegree() == 0) {
queue.offer(v);
}
}
while (!queue.isEmpty()) {
Vertex v = queue.poll();
System.out.print(v + " ");
for (Vertex adj : v.getAdjacentVertices()) {
adj.setInDegree(adj.getInDegree() - 1);
if (adj.getInDegree() == 0) {
queue.offer(adj);
}
}
}
}
In this algorithm, we start by finding all vertices with in-degree 0, which are called source vertices. We then add these source vertices to a queue. We then repeatedly dequeue a vertex from the queue and add it to the sorted output. For each vertex that we add to the sorted output, we decrement the in-degree of all its adjacent vertices. If the in-degree of an adjacent vertex becomes 0, we add it to the queue. We repeat this process until the queue is empty.
Related Questions
- What is the time complexity of the topological sorting algorithm using source removal?
- The time complexity is O(V + E), where V is the number of vertices and E is the number of edges.
- What are the applications of topological sorting?
- Topological sorting is used in scheduling tasks, resolving dependencies, and finding the critical path in a project.
- What is the difference between topological sorting and depth-first search?
- Topological sorting preserves the order of dependent vertices, while depth-first search does not.
- What is the difference between topological sorting and breadth-first search?
- Topological sorting considers the in-degrees of vertices, while breadth-first search does not.
- What are the limitations of topological sorting?
- Topological sorting can only be applied to directed acyclic graphs (DAGs).
Related Hot Sale Items
- Yonex Badminton Rackets
- Victor Badminton Shoes
- Li-Ning Badminton Apparel
- Ashaway Badminton Strings
- Babolat Badminton Grips
Pre:Do girls like boys who wear polo shirts buttoned all the way to the top
Next:What does it mean when someone sends an apology emoji that looks like a cottage