Professional Documents
Culture Documents
Lab Assignment 8
# Driver Code
print("Following is the Breadth-First Search")
bfs(visited, graph, '5')
Output:
Output:
# No. of vertices
self.V = V
for v in range(self.V):
if (visited[v] == False):
self.DFSUtil(v, visited)
count += 1
return count
self.adj[v].append(w)
self.adj[w].append(v)
if __name__=='__main__':
g = Graph(5)
g.addEdge(1, 0)
g.addEdge(2, 3)
g.addEdge(3, 4)
print("Number Of connected Components")
print(g.NumberOfconnectedComponents())
Output:
Solution:
class Graph:
if __name__ == '__main__':
# construct graph
constructed_graph = Graph(edges, a)
Output:
e)Find a minimum cost spanning tree of the Graph (use any algorithm).
class Graph:
# A function that does union of two sets of x and y (uses union by rank)
def union(self, parent, rank, x, y):
# If ranks are same, then make one as root and increment its rank by one
else:
parent[y] = x
rank[x] += 1
parent = []
rank = []
minimumCost = 0
print("Edges in the constructed MST")
for u, v, weight in result:
minimumCost += weight
print("%d -- %d == %d" % (u, v, weight))
print("Minimum Spanning Tree", minimumCost)
if __name__ == '__main__':
g = Graph(4)
g.addEdge(0, 1, 10)
g.addEdge(0, 2, 6)
g.addEdge(0, 3, 5)
g.addEdge(1, 3, 15)
g.addEdge(2, 3, 4)
# Function call
g.KruskalMST()
Output: