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

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

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

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

उदाहरण

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("There are 6 edges. They are : ")
print("1-->0")
print("2-->3")
print("3-->4")
print("5-->0")

connected_comp = my_instance.find_connected_components()
print("The connected components are...")
print(connected_comp)

आउटपुट

There are 6 edges. They are :
1-->0
2-->3
3-->4
5-->0
The connected components are...
[[0, 1, 5], [2, 3, 4]]

स्पष्टीकरण

  • 'ग्राफ_स्ट्रक्चर' नामक एक वर्ग को '_init_' पद्धति के साथ परिभाषित किया गया है।

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

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

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

  • 'ग्राफ_स्ट्रक्चर' का एक उदाहरण बनाया गया है।

  • इसमें 'add_edge' पद्धति का उपयोग करके तत्वों को जोड़ा जाता है।

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

  • 'find_connected_components' को कॉल किया जाता है और आउटपुट कंसोल पर प्रदर्शित होता है।


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

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

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

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

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

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