Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

अनडायरेक्टेड ग्राफ में DFS का उपयोग करके सभी कनेक्टेड कंपोनेंट्स खोजने का पायथन प्रोग्राम


जब अनडायरेक्टेड ग्राफ में डेप्थ फर्स्ट सर्च का उपयोग करके सभी कनेक्टेड कंपोनेंट्स खोजने हों, तो एक क्लास परिभाषित की जाती है जिसमें मानों को आरंभ करने, डेप्थ फर्स्ट सर्च ट्रैवर्सल करने, कनेक्टेड कंपोनेंट्स खोजने, ग्राफ में नोड्स जोड़ने आदि के लिए मेथड्स होते हैं। क्लास का इंस्टेंस बनाया जा सकता है और मेथड्स को एक्सेस करके इस पर ऑपरेशन किए जा सकते हैं।

उदाहरण

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' नामक एक मेथड परिभाषित की जाती है जो उन नोड्स को निर्धारित करने में मदद करती है जो एक-दूसरे से जुड़े हुए हैं।

  • क्लास का एक इंस्टेंस बनाया जाता है और इस पर मेथड्स को कॉल किया जाता है।

  • नोड्स कंसोल पर प्रदर्शित होते हैं।

  • कनेक्टेड कंपोनेंट्स कंसोल पर आउटपुट के रूप में प्रदर्शित होते हैं।


  1. पायथन में स्टार ग्राफ का केंद्र ज्ञात करने का प्रोग्राम पायथन में स्टार ग्राफ का केंद्र ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास n नोड्स वाला एक अनिर्देशित स्टार ग्राफ है जो 1 से n तक लेबल किए गए हैं। जैसा कि हम जानते हैं, एक स्टार ग्राफ एक ऐसा ग्राफ है जहां एक केंद्र नोड होता है और ठीक n-1 किनारे होते हैं जो केंद्र नोड को हर दूसरे नोड से जोड़ते हैं। हमें दिए गए स्टार ग्राफ का केंद्र ढूंढना है। इसलिए, यदि

  1. Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें? Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें?

    डायरेक्टेड एसाइक्लिक ग्राफ (DAG) में जिन वर्टेक्सेज़ का इन-डिग्री 0 है, उनसे सभी नोड्स पहुंचे जा सकते हैं। एल्गोरिदम सभी नोड्स का सेट बनाएं (0 से n-1)। सभी एजेज़ के डेस्टिनेशन नोड्स (v) का सेट बनाएं। सोर्स नोड्स = सभी नोड्स - डेस्टिनेशन नोड्स (यानी इन-डिग्री 0 वाले)। यही मिनिमम वर्टेक्स सेट है। उद

  1. पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके

    इस लेख में, हम पायथन 3.x में उपलब्ध unittest मॉड्यूल की मदद से सॉफ्टवेयर टेस्टिंग के फंडामेंटल्स सीखेंगे। या इससे पहले। यह ऑटोमेशन, टेस्ट्स के लिए सेटअप और एग्जिट कोड शेयर करने, और हर फ्रेमवर्क के लिए इंडिपेंडेंट टेस्ट्स की अनुमति देता है। यूनिट टेस्ट में, हम ऑब्जेक्ट ओरिएंटेड कॉन्सेप्ट्स की एक वि