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

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


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

उदाहरण

class Graph_structure:
    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 find_connected_components(self):
        visited = []
        connected_comp = []
        for i in range(self.V):
            visited.append(False)
        for v in range(self.V):
            if visited[v] == False:
                temp = []
                connected_comp.append(self.DFS_Utility(temp, v, visited))
        return connected_comp

my_instance = Graph_structure(6)
my_instance.add_edge(1, 0)
my_instance.add_edge(2, 3)
my_instance.add_edge(3, 4)
my_instance.add_edge(5, 0)
print("6 एज हैं। वे हैं:")
print("1-->0")
print("2-->3")
print("3-->4")
print("5-->0")
connected_comp = my_instance.find_connected_components()
print("कनेक्टेड कंपोनेंट्स हैं...")
print(connected_comp)

आउटपुट

6 एज हैं। वे हैं:
1-->0
2-->3
3-->4
5-->0
कनेक्टेड कंपोनेंट्स हैं... [[0, 1, 5], [2, 3, 4]]

व्याख्या

  • 'Graph_structure' नामक एक क्लास '__init__' मेथड के साथ परिभाषित की जाती है।

  • 'DFS_Utility' नामक एक मेथड परिभाषित की जाती है जो ग्राफ के एलिमेंट्स पर डेप्थ फर्स्ट ट्रैवर्सल करने में मदद करती है।

  • 'add_edge' नामक एक अन्य मेथड परिभाषित की जाती है जो ग्राफ में नोड्स जोड़ने में मदद करती है।

  • 'find_connected_components' नामक एक अन्य मेथड परिभाषित की जाती है जो किसी विशिष्ट नोड से जुड़े नोड्स को निर्धारित करने में मदद करती है।

  • 'Graph_structure' का एक इंस्टेंस बनाया जाता है।

  • 'add_edge' मेथड का उपयोग करके एलिमेंट्स इसमें जोड़े जाते हैं।

  • इसे कंसोल पर प्रदर्शित किया जाता है।

  • 'find_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 मॉड्यूल की मदद से सॉफ्टवेयर टेस्टिंग के फंडामेंटल्स सीखेंगे। या इससे पहले। यह ऑटोमेशन, टेस्ट्स के लिए सेटअप और एग्जिट कोड शेयर करने, और हर फ्रेमवर्क के लिए इंडिपेंडेंट टेस्ट्स की अनुमति देता है। यूनिट टेस्ट में, हम ऑब्जेक्ट ओरिएंटेड कॉन्सेप्ट्स की एक वि