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

एक ग्राफ में पुल


अप्रत्यक्ष ग्राफ़ में किनारे को ब्रिज कहा जाता है, यदि और केवल यदि इसे हटाकर, ग्राफ़ को डिस्कनेक्ट कर देता है, या ग्राफ़ के विभिन्न घटकों को बना देता है।

एक ग्राफ में पुल

व्यावहारिक दृष्टिकोण में, यदि पुलों का कनेक्शन टूट जाने पर नेटवर्क में कुछ पुल मौजूद हैं, तो यह पूरे नेटवर्क को तोड़ सकता है।

इनपुट और आउटपुट

इनपुट:ग्राफ का आसन्न मैट्रिक्स।0 1 1 1 01 0 1 0 01 1 0 0 01 0 0 0 10 0 0 1 0आउटपुट:दिए गए ग्राफ में पुल:ब्रिज 3--4ब्रिज 0--3 

एल्गोरिदम

ब्रिजफाइंड (शुरू करें, विज़िट करें, डिस्क, कम, पैरेंट)

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

आउटपुट - अगर कोई पुल मिलता है तो प्रिंट करें।

प्रारंभ समय:=0//अगले फ़ंक्शन कॉल के लिए समय का मान प्रारंभ नहीं किया जाएगा, विज़िट किए गए सेट डिस्क के रूप में प्रारंभ करें [प्रारंभ]:=समय + 1 और निम्न [प्रारंभ]:=समय + 1 समय:=समय + 1 ग्राफ जी में सभी शीर्ष वी के लिए, यदि (प्रारंभ, वी) के बीच एक किनारा है, तो अगर वी का दौरा किया जाता है, तो माता-पिता [वी]:=ब्रिज शुरू करें ढूंढें (वी, विज़िट, डिस्क, कम, माता-पिता) कम [शुरू]:=कम से कम [शुरू] और कम [वी] अगर कम [वी]> डिस्क [शुरू], तो शुरू से वी तक पुलों को प्रदर्शित करें यदि वी शुरुआत के माता-पिता नहीं है, तो कम [शुरू] :=कम से कम [शुरू] और डिस्क [v] किया गयाअंत

उदाहरण

#शामिल करें#नेमस्पेस एसटीडी का उपयोग करके नोड 5 परिभाषित करें;इंट ग्राफ[NODE][NODE] ={ {0, 1, 1, 1, 0}, {1, 0, 1, 0, 0}, { 1, 1, 0, 0, 0}, {1, 0, 0, 0, 1}, {0, 0, 0, 1, 0}}; इंट मिन (इंट ए, इंट बी) {रिटर्न (ए <बी)? ए:बी;} शून्य ब्रिजफाइंड (इंट स्टार्ट, बूल विज़िट किया गया [], इंट डिस्क [], इंट लो [], इंट पैरेंट []) {स्थिर इंट टाइम =0; दौरा किया [शुरू] =सच; // पहले शीर्ष पर डिस्क का दौरा किया जाता है [शुरू] =कम [शुरू] =++ समय; // खोज समय और कम समय शुरू करें (int v =0; v  डिस्क [स्टार्ट]) cout <<"ब्रिज" <<प्रारंभ <<"-"< 

आउटपुट

दिए गए ग्राफ़ में पुल:पुल 3--4पुल 0--3

  1. Matplotlib में एक घूर्णन 3D ग्राफ़ को चेतन करें

    Matplotlib में एक घूर्णन 3D ग्राफ़ बनाने के लिए, हम एनीमेशन . का उपयोग कर सकते हैं किसी फंक्शन को बार-बार कॉल करने के लिए क्लास। कदम मेश ग्रिड की संख्या, फ़ंक्शन को कॉल करने के लिए प्रति सेकंड फ़्रीक्वेंसी, फ़्रेम नंबर के लिए वैरिएबल प्रारंभ करें। वक्र के लिए x, y, और z सरणी बनाएँ। लैम्ब्ड

  1. पायथन में ग्राफ प्लॉटिंग

    पायथन में matplotlib पुस्तकालय का उपयोग करके रेखांकन बनाने की क्षमता है। इसमें कई पैकेज और फ़ंक्शन हैं जो विभिन्न प्रकार के ग्राफ़ और प्लॉट उत्पन्न करते हैं। इसे इस्तेमाल करना भी बहुत आसान है। यह numpy और अन्य पायथन बिल्ट-इन फ़ंक्शंस के साथ लक्ष्य को प्राप्त करता है। इस लेख में हम कुछ विभिन्न प्रकार

  1. रेडिसग्राफ 2.8 आ गया है!

    आज हमें रेडिसग्राफ 2.8 की सामान्य उपलब्धता रिलीज की घोषणा करते हुए खुशी हो रही है। यह ब्लॉग पोस्ट अब उपलब्ध प्रमुख नई सुविधाओं का विवरण देता है। RedisGraph के बारे में RedisGraph, Redis के लिए एक उच्च-प्रदर्शन, मेमोरी-प्रथम ग्राफ़ डेटा संरचना है। RedisGraph ग्राफ़ मल्टी-टेनेंसी का समर्थन करता है (य