जब एक अप्रत्यक्ष ग्राफ में गहराई से पहली खोज का उपयोग करके सभी जुड़े घटकों को खोजने की आवश्यकता होती है, तो एक वर्ग परिभाषित किया जाता है जिसमें मूल्यों को प्रारंभ करने के तरीके होते हैं, गहराई से पहले खोज ट्रैवर्सल करते हैं, जुड़े घटकों को ढूंढते हैं, ग्राफ में नोड्स जोड़ते हैं और इसी तरह। वर्ग का उदाहरण बनाया जा सकता है और विधियों तक पहुँचा जा सकता है और संचालन और उस पर प्रदर्शन किया जा सकता है।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
class Graph_struct: def __init__(self, V): self.V = V self.adj = [[] for i in range(V)] def DFS_Utililty(self, temp, v, visited): visited[v] = True temp.append(v) for i in self.adj[v]: if visited[i] == False: temp = self.DFS_Utililty(temp, i, visited) return temp def add_edge(self, v, w): self.adj[v].append(w) self.adj[w].append(v) def connected_components(self): visited = [] conn_compnent = [] for i in range(self.V): visited.append(False) for v in range(self.V): if visited[v] == False: temp = [] conn_compnent.append(self.DFS_Utililty(temp, v, visited)) return conn_compnent my_instance = Graph_struct(5) my_instance.add_edge(1, 0) my_instance.add_edge(2, 3) my_instance.add_edge(3, 0) print("1-->0") print("2-->3") print("3-->0") conn_comp = my_instance.connected_components() print("The connected components are :") print(conn_comp)
आउटपुट
1-->0 2-->3 3-->0 The connected components are : [[0, 1, 3, 2], [4]]
स्पष्टीकरण
-
'ग्राफ_स्ट्रक्चर' नामक एक वर्ग परिभाषित किया गया है।
-
'add_edge' नाम की एक विधि परिभाषित की गई है जो पेड़ में तत्वों को जोड़ने में मदद करती है।
-
'DFS_Utility' पद्धति को परिभाषित किया गया है जो गहराई से पहले खोज दृष्टिकोण का उपयोग करके पेड़ को पार करने में मदद करती है।
-
'कनेक्टेड_कंपोनेंट्स' नाम की एक विधि परिभाषित की गई है, जो एक दूसरे से जुड़े नोड्स को निर्धारित करने में मदद करती है।
-
कक्षा का एक उदाहरण बनाया जाता है, और उस पर विधियों को बुलाया जाता है।
-
नोड कंसोल पर प्रदर्शित होते हैं।
-
कनेक्टेड घटकों को कंसोल पर आउटपुट के रूप में प्रदर्शित किया जाता है।