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

पायथन प्रोग्राम यह पता लगाने के लिए कि क्या अप्रत्यक्ष ग्राफ़ में BFS का उपयोग करके साइकिल है

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

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

उदाहरण

संग्रह से ):माता-पिता =[-1] * वी क्यू =डेक () का दौरा किया [एस] =सही क्यू। संलग्न (एस) जबकि क्यू! =[]:u =q.pop () adj में v के लिए [यू]:अगर विज़िट नहीं किया गया [v]:विज़िट किया गया [v] =ट्रू q.append(v) पैरेंट[v] =u elif parent[u] !=v:रिटर्न ट्रू रिटर्न Falsedef cycle_disconnected(adj:list, V):विज़िट किया गया =[गलत ] * वी फॉर आई इन रेंज (वी):अगर विजिट नहीं किया गया है [i] और डिटेक्ट_साइकल (एडज, आई, वी, विजिट किया गया):रिटर्न ट्रू रिटर्न फाल्सिफ __name__ =="__main__":वी =5 एडज =[[] i के लिए in range(V)] add_edge(adj, 0, 1) add_edge(adj, 1, 2) add_edge(adj, 2, 0) add_edge(adj, 2, 3) add_edge(adj, 2, 1) अगर cycle_disconnected(adj , वी):प्रिंट ("ग्राफ में 5 कोने हैं") प्रिंट ("0--> 1") प्रिंट ("1--> 2") प्रिंट ("2--> 0") प्रिंट ("2 -->3") प्रिंट ("2-->1") प्रिंट ("क्या वहाँ है) ई एक चक्र?") प्रिंट ("हां") और:प्रिंट ("ग्राफ में 5 कोने हैं") प्रिंट ("0--> 1") प्रिंट ("1--> 2") प्रिंट ("2- ->0") प्रिंट ("2-->3") प्रिंट ("2-->1") प्रिंट ("क्या कोई चक्र है?") प्रिंट ("हां") प्रिंट ("नहीं")

आउटपुट

ग्राफ़ में 5 शीर्ष होते हैं0-->11-->22-->02-->32-->1क्या कोई चक्र है ?हां

स्पष्टीकरण

  • आवश्यक पैकेज आयात किए जाते हैं।

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

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

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

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

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

  • 'साइकिल_डिस्कनेक्टेड' विधि को कॉल किया जाता है और आउटपुट कंसोल पर प्रदर्शित होता है।


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

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

  1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

  1. पता लगाएं कि क्या एक अप्रत्यक्ष ग्राफ में पायथन में दिए गए आकार का एक स्वतंत्र सेट है

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ दिया गया है; हमें यह जांचना है कि इसमें आकार का एक स्वतंत्र सेट है या नहीं। यदि आकार l का कोई स्वतंत्र सेट है तो हाँ लौटाएँ अन्यथा नहीं। हमें यह ध्यान रखना होगा कि ग्राफ़ में एक स्वतंत्र समुच्चय को ऐसे शीर्षों के समुच्चय के रूप में परिभाषित किया जाता है जो