जब अनडायरेक्टेड ग्राफ में डेप्थ फर्स्ट सर्च का उपयोग करके सभी कनेक्टेड कंपोनेंट्स खोजने हों, तो एक क्लास परिभाषित की जाती है जिसमें मानों को आरंभ करने, डेप्थ फर्स्ट सर्च ट्रैवर्सल करने, कनेक्टेड कंपोनेंट्स खोजने, ग्राफ में नोड्स जोड़ने आदि के लिए मेथड्स होते हैं। क्लास का इंस्टेंस बनाया जा सकता है और मेथड्स को एक्सेस करके इस पर ऑपरेशन किए जा सकते हैं।
उदाहरण
class Graph_struct:
def __init__(self, V):
self.V = V
self.adj = [[] for i in range(V)]
def DFS_Utility(self, temp, v, visited):
visited[v] = True
temp.append(v)
for i in self.adj[v]:
if visited[i] == False:
temp = self.DFS_Utility(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_Utility(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("कनेक्टेड कंपोनेंट्स हैं:")
print(conn_comp)
आउटपुट
1-->0 2-->3 3-->0 कनेक्टेड कंपोनेंट्स हैं: [[0, 1, 3, 2], [4]]
व्याख्या
'Graph_struct' नामक एक क्लास परिभाषित की जाती है।
'add_edge' नामक एक मेथड परिभाषित की जाती है जो ट्री में एलिमेंट्स जोड़ने में मदद करती है।
'DFS_Utility' मेथड परिभाषित की जाती है जो डेप्थ फर्स्ट सर्च दृष्टिकोण का उपयोग करके ट्री को ट्रैवर्स करने में मदद करती है।
'connected_components' नामक एक मेथड परिभाषित की जाती है जो उन नोड्स को निर्धारित करने में मदद करती है जो एक-दूसरे से जुड़े हुए हैं।
क्लास का एक इंस्टेंस बनाया जाता है और इस पर मेथड्स को कॉल किया जाता है।
नोड्स कंसोल पर प्रदर्शित होते हैं।
कनेक्टेड कंपोनेंट्स कंसोल पर आउटपुट के रूप में प्रदर्शित होते हैं।