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

यूलरियन पथ और सर्किट


यूलर पथ एक पथ है, जिसके द्वारा हम प्रत्येक किनारे को ठीक एक बार देख सकते हैं। हम एक ही शीर्षों का कई बार उपयोग कर सकते हैं। यूलर सर्किट यूलर पथ का एक विशेष प्रकार है। जब यूलर पथ का प्रारंभिक शीर्ष उस पथ के अंतिम शीर्ष से भी जुड़ा होता है, तो इसे यूलर सर्किट कहा जाता है।

यूलरियन पथ और सर्किट

पथ और सर्किट का पता लगाने के लिए, हमें इन शर्तों का पालन करना होगा -

  • ग्राफ जुड़ा हुआ होना चाहिए।
  • जब ठीक दो शीर्षों की डिग्री विषम हो, तो यह एक यूलर पथ है।
  • अब जब एक अनिर्देशित ग्राफ के किसी भी शीर्ष की डिग्री विषम नहीं है, तो यह एक यूलर सर्किट है।

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

इनपुट: एक ग्राफ का आसन्नता मैट्रिक्स। 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 आउटपुट: ग्राफ में एक यूलरियन पथ है।

एल्गोरिदम

traverse(u, visited)

इनपुट: प्रारंभ नोड u और देखा गया नोड जिसे यह चिह्नित करने के लिए कि कौन सा नोड देखा गया है।

आउटपुट: सभी जुड़े शीर्षों को पार करें।

शुरू     u को देखा गया चिह्नित करें     u के साथ आसन्न सभी शीर्ष v के लिए, करें       यदि v नहीं देखा गया है, तो         traverse(v, visited)     किया अंत

isConnected(graph)

इनपुट: ग्राफ।

आउटपुट: ग्राफ जुड़ा हुआ है तो सच।

शुरू     देखी गई सरणी परिभाषित करें     ग्राफ में सभी शीर्ष u के लिए, करें       सभी नोड्स को अनदेखा करें       traverse(u, visited)       यदि कोई अनदेखा नोड अभी भी शेष है, तो         वापस करें गलत     किया     वापस करें सच अंत

isEulerian(Graph)

इनपुट: दिया गया ग्राफ।

आउटपुट: 0 वापस करता है जब यूलरियन नहीं, 1 जब यूलर पथ हो, 2 जब यूलर सर्किट मिला।

शुरू     यदि isConnected() गलत है, तो       वापस करें गलत     प्रत्येक नोड के लिए डिग्री की सूची परिभाषित करें     oddDegree := 0     ग्राफ में सभी शीर्ष i के लिए, करें       i के साथ जुड़े सभी शीर्ष j के लिए, करें         डिग्री बढ़ाएं       किया       यदि शीर्ष i की डिग्री विषम है, तो         oddDegree बढ़ाएं     किया     यदि oddDegree > 2, तो       वापस करें 0     यदि oddDegree = 0, तो       वापस करें 2     अन्यथा       वापस करें 1 अंत

उदाहरण

#include<iostream> #include<vector> #define NODE 5 using namespace std; int graph[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} };           /* int graph[NODE][NODE] = {     {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} }; */       //यूलर सर्किट जांचने के लिए अनकमेंट करें       /* int graph[NODE][NODE] = {     {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} }; */       //गैर-यूलरियन ग्राफ जांचने के लिए अनकमेंट करें           void traverse(int u, bool visited[]) {     visited[u] = true;     //v को देखा गया चिह्नित करें     for(int v = 0; v 2)       //जब विषम डिग्री वाले शीर्ष 2 से अधिक हों       return 0;           return (oddDegree)?1:2;       //जब oddDegree 0 हो, तो यह यूलर सर्किट है, और जब 2 हो, तो यह यूलर पथ है } int main() {     int check;     check = isEulerian();     switch(check) {       case 0: cout << "The graph is not an Eulerian graph.";         break;       case 1: cout << "The graph has an Eulerian path.";         break;       case 2: cout << "The graph has a Eulerian circuit.";         break;     } }

आउटपुट

The graph has an Eulerian path.

  1. C++ प्रोग्राम: जांचें कि निर्देशित ग्राफ (Directed Graph) में यूलरियन पथ है या नहीं C++ प्रोग्राम: जांचें कि निर्देशित ग्राफ (Directed Graph) में यूलरियन पथ है या नहीं

    यूलर पथ एक ऐसा पथ है जिसके द्वारा हम प्रत्येक एज को ठीक एक बार विजिट कर सकते हैं। हम समान वर्टेक्स का उपयोग कई बार कर सकते हैं। एक ग्राफ जिसमें यूलर सर्किट होता है, इस मामले में भी माना जाता है, क्योंकि इसमें यूलर पथ भी होता है। यह जांचने के लिए कि एक निर्देशित ग्राफ में यूलर पथ है या नहीं, हमें इ

  1. C++ प्रोग्राम: जांचें कि अनिर्देशित ग्राफ (Undirected Graph) में यूलरियन पथ है या नहीं C++ प्रोग्राम: जांचें कि अनिर्देशित ग्राफ (Undirected Graph) में यूलरियन पथ है या नहीं

    यूलर पथ एक ऐसा पथ है जिसके द्वारा हम प्रत्येक नोड को ठीक एक बार विजिट कर सकते हैं। हम समान एज का उपयोग कई बार कर सकते हैं। यूलर सर्किट यूलर पथ का एक विशेष प्रकार है। जब यूलर पथ का प्रारंभिक वर्टेक्स उस पथ के अंतिम वर्टेक्स से भी जुड़ा होता है। यूलर पथ का पता लगाने के लिए, हमें इन शर्तों का पालन कर

  1. पावरपॉइंट में मोशन पाथ एनीमेशन कैसे बनाएं और जोड़ें पावरपॉइंट में मोशन पाथ एनीमेशन कैसे बनाएं और जोड़ें

    पावरपॉइंट में, आप किसी ऑब्जेक्ट पर मोशन पाथ एनीमेशन लागू कर सकते हैं। मोशन पाथ उपयोगकर्ता को ऑब्जेक्ट को एक क्रम में ले जाने की अनुमति देता है जो एक कहानी बता सकता है। आप पाथ को घुमा भी सकते हैं। पावरपॉइंट प्रस्तुति में मोशन पाथ क्या है? पावरपॉइंट मोशन पाथ आपको ऑब्जेक्ट को एक क्रम में ले जाने की अन