यूलर पथ एक पथ है, जिसके द्वारा हम प्रत्येक किनारे पर ठीक एक बार जा सकते हैं। हम एक ही कोने को कई बार इस्तेमाल कर सकते हैं। यूलर सर्किट एक विशेष प्रकार का यूलर पथ है। जब यूलर पथ का आरंभिक शीर्ष भी उस पथ के अंतिम शीर्ष से जुड़ जाता है, तो इसे यूलर परिपथ कहा जाता है।
पथ और सर्किट का पता लगाने के लिए, हमें इन शर्तों का पालन करना होगा -
- ग्राफ़ कनेक्ट होना चाहिए।
- जब ठीक दो शीर्षों में विषम डिग्री होती है, तो यह एक यूलर पथ होता है।
- अब जब अप्रत्यक्ष ग्राफ के किसी भी कोने में विषम डिग्री नहीं होती है, तो यह एक यूलर सर्किट होता है।
इनपुट और आउटपुट
इनपुट:ग्राफ का एडजेंसी मैट्रिक्स।एल्गोरिदम
ट्रैवर्स (यू, विज़िट किया गया)
इनपुट: प्रारंभ नोड u और विज़िट किए गए नोड को चिह्नित करने के लिए कि किस नोड का दौरा किया गया है।
आउटपुट - सभी जुड़े हुए शीर्षों को पार करें।
शुरू करें u को सभी शीर्ष के लिए विज़िट किया गया v, यदि यह u के निकट है, तो करें यदि v विज़िट नहीं किया गया है, तो traverse(v, विज़िट किया गया) किया गयाअंतकनेक्टेड है(ग्राफ)
इनपुट - ग्राफ़।
आउटपुट - ग्राफ़ कनेक्ट होने पर सही है।
ग्राफ में आपके सभी शीर्षों के लिए विज़िट किए गए सरणी को परिभाषित करना शुरू करें, सभी नोड्स को बिना विज़िट किए ट्रैवर्स (यू, विज़िट किया गया) बनाएं यदि कोई गैर-विजिटेड नोड अभी भी शेष है, तो गलत हो गया रिटर्न ट्रूएंडisEularian(ग्राफ)
इनपुट - दिया गया ग्राफ़.
आउटपुट - रिटर्न 0, जब यूलेरियन नहीं होता है, 1 जब इसमें यूलर पथ होता है, 2 जब यूलर सर्किट पाया जाता है
शुरू करें यदि isConnected() गलत है, तो प्रत्येक नोड के लिए डिग्री की झूठी परिभाषित सूची लौटाएं विषम डिग्री:=0 ग्राफ में सभी शीर्ष i के लिए, सभी शीर्ष j के लिए करें जो i से जुड़े हैं, यदि डिग्री हो तो डिग्री बढ़ाएं शीर्ष का मैं विषम है, फिर डूडिग्री बढ़ाएँ यदि विषम डिग्री> 2 है, तो 0 लौटाएँ यदि विषम डिग्री =0 है, तो 2 अन्य लौटाएँ 1 समाप्त करेंउदाहरण
#शामिल करें#शामिल करें<वेक्टर>#नोड 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, 1, 1, 1, 1}, {1, 0, 1, 0, 0}, {1, 1, 0, 0, 0}, {1 , 0, 0, 0, 1}, {1, 0, 0, 1, 0}};*///यूलर सर्किट की जाँच के लिए असहजता /* इंट ग्राफ [नोड] [नोड] ={{0, 1, 1 , 1, 0}, {1, 0, 1, 1, 0}, {1, 1, 0, 0, 0}, {1, 1, 0, 0, 1}, {0, 0, 0, 1 , 0}};*///गैर यूलेरियन ग्राफ़ की जांच करने के लिए असुविधा // मार्क वी के रूप में देखा गया (इंट वी =0; वी <एनओडीई; वी ++) {अगर (ग्राफ [यू] [वी]) {अगर (! विज़िट किया गया [वी]) ट्रैवर्स (वी, विज़िट किया गया); } }}बूल कनेक्टेड है() { बूल *विज़ =नया बूल[नोड]; // सभी शीर्ष के लिए आप प्रारंभ बिंदु के रूप में, जांचें कि सभी नोड्स दिखाई दे रहे हैं या नहीं के लिए (int u; u डिग्री (नोड, 0); इंट ऑडडिग्री =0; for(int i =0; i 2) // जब 2 से अधिक विषम डिग्री वाले कोने 0 रिटर्न; वापसी (विषम डिग्री)?1:2; // जब विषम डिग्री 0 है, यह यूलर सर्किट है, और जब 2, यह यूलर पथ} int main() {int check; चेक =isEularian (); स्विच (चेक) {केस 0:cout <<"ग्राफ एक यूलेरियन ग्राफ नहीं है।"; टूटना; केस 1:cout <<"ग्राफ में एक ऑयलेरियन पथ है।"; टूटना; केस 2:cout <<"ग्राफ में एक ऑयलेरियन सर्किट है।"; टूटना; }}पूर्व> आउटपुट
ग्राफ़ में एक ऑयलेरियन पथ है।