Topological sort Python
- Get link
- X
- Other Apps
PROGRAM TO APPLY TOPOLOGICAL SORTING
from collections import defaultdict# Class to represent a graphclass Graph: def __init__(self, vertices): self.graph = defaultdict(list) # dictionary containing adjacency List self.V = vertices # No. of vertices # function to add an edge to graph def addEdge(self, u, v): self.graph[u].append(v) # A recursive function used by topologicalSort def topologicalSortUtil(self, v, visited, stack): # Mark the current node as visited. visited[v] = True # Recur for all the vertices adjacent to this vertex for i in self.graph[v]: if visited[i] == False: self.topologicalSortUtil(i, visited, stack) # Push current vertex to stack which stores result stack.append(v) # The function to do Topological Sort. It uses recursive # topologicalSortUtil() def topologicalSort(self): # Mark all the vertices as not visited visited = [False]*self.V stack = [] # Call the recursive helper function to store Topological # Sort starting from all vertices one by one for i in range(self.V): if visited[i] == False: self.topologicalSortUtil(i, visited, stack) # Print contents of the stack print(stack[::-1]) # return list in reverse order# Driver Codeg = Graph(6)g.addEdge(5, 2)g.addEdge(5, 0)g.addEdge(4, 0)g.addEdge(4, 1)g.addEdge(2, 3)g.addEdge(3, 1)print ("Following is a Topological Sort of the given graph")# Function Callg.topologicalSort()OUTPUT:
Following is a Topological Sort of the given graph 5 4 2 3 1 0
- Get link
- X
- Other Apps
Comments
Post a Comment