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

एक अप्रत्यक्ष ग्राफ में डीएफएस का उपयोग करके सभी जुड़े घटकों को खोजने के लिए पायथन कार्यक्रम

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

नीचे उसी का एक प्रदर्शन है -

उदाहरण

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' पद्धति को परिभाषित किया गया है जो गहराई से पहले खोज दृष्टिकोण का उपयोग करके पेड़ को पार करने में मदद करती है।

  • 'कनेक्टेड_कंपोनेंट्स' नाम की एक विधि परिभाषित की गई है, जो एक दूसरे से जुड़े नोड्स को निर्धारित करने में मदद करती है।

  • कक्षा का एक उदाहरण बनाया जाता है, और उस पर विधियों को बुलाया जाता है।

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

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


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

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

  1. पायथन का उपयोग करके सभी नोड्स तक पहुंचने के लिए न्यूनतम संख्या में कोने खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ

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

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