जब एक पेड़ के सभी नोड्स का योग खोजने की आवश्यकता होती है, तो एक वर्ग बनाया जाता है, और इसमें रूट नोड सेट करने, पेड़ में तत्व जोड़ने, एक विशिष्ट तत्व की खोज करने और पेड़ के तत्वों को जोड़ने के तरीके होते हैं। राशि और इतने पर खोजें। इन विधियों तक पहुँचने और उनका उपयोग करने के लिए कक्षा का एक उदाहरण बनाया जा सकता है।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
संग्रह से ):माता-पिता =[-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' पद्धति का उपयोग करके ग्राफ़ में जोड़ा जाता है।
-
यह कंसोल पर प्रदर्शित होता है।
-
'साइकिल_डिस्कनेक्टेड' विधि को कॉल किया जाता है और आउटपुट कंसोल पर प्रदर्शित होता है।