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

ग्राफ द्विभाजित है या नहीं जांचें


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

ग्राफ द्विभाजित है या नहीं जांचें

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

ग्राफ द्विभाजित है या नहीं जांचें

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

इनपुट: आसन्नता मैट्रिक्स। 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 आउटपुट: ग्राफ द्विभाजित है।

एल्गोरिदम

isBipartite(source)

इनपुट: स्रोत शीर्ष।
आउटपुट: ग्राफ द्विभाजित होने पर सच।

शुरू     एक खाली कतार qu और एक रंग सूची colorArray परिभाषित करें     प्रारंभ में किसी भी नोड को किसी रंग से रंगा नहीं गया है     स्रोत शीर्ष को लाल रंग दें     स्रोत को qu में जोड़ें     जब qu खाली नहीं है, करें       qu से आइटम हटाएं और u में लें       यदि कोई सेल्फ-लूप है, तो         वापस करें गलत       u से जुड़े सभी शीर्ष v के लिए, करें         यदि v का कोई रंग नहीं है, तो           यदि colorArray[u] = लाल, तो             colorArray[v] := नीला           अन्यथा यदि colorArray[u] = नीला, तो             colorArray[v] := लाल           v को कतार में जोड़ें         यदि colorArray[v] = colorArray[u], तो           वापस करें गलत       किया     किया     वापस करें सच अंत

उदाहरण

#include<iostream> #include<string> #include<queue> #define NODE 6 using namespace std; /*int graph[NODE][NODE] = {     {0, 1, 1, 1, 0, 0},     {1, 0, 0, 1, 1, 0},     {1, 0, 0, 1, 0, 1},     {1, 1, 1, 0, 1, 1},     {0, 1, 0, 1, 0, 1},     {0, 0, 1, 1, 1, 0} }; */ int graph[NODE][NODE] = {     {0, 1, 0, 0, 0, 1},     {1, 0, 1, 0, 0, 0},     {0, 1, 0, 1, 0, 0},     {0, 0, 1, 0, 1, 0},     {0, 0, 0, 1, 0, 1},     {1, 0, 0, 0, 1, 0} }; bool isBipartite(int source) {     queue<int> qu;     string colorArray[NODE];     for(int i = 0; i< NODE; i++)       colorArray[i] = "No Color";       //प्रारंभ में सभी शीर्षों के लिए कोई रंग सेट नहीं     colorArray[source] = "Red";       //स्रोत शीर्ष के साथ लाल असाइन करें     qu.push(source);       //स्रोत को कतार में जोड़ें।     while(!qu.empty()) {       int u = qu.front();       qu.pop();       if(graph[u][u] == 1)       //सेल्फ लूप है       return false;       for(int v = 0; v < NODE; v++) {         if(graph[u][v] != 0 && colorArray[v] == "No Color") {           if(colorArray[u] == "Red")       //आसन्न सूची को वैकल्पिक रंग के साथ असाइन करें             colorArray[v] = "Blue";           else if(colorArray[u] == "Blue")             colorArray[v] = "Red";           qu.push(v);       //नया आसन्न नोड कतार में जोड़ा गया         } else if(graph[u][v] != 0 && colorArray[v] == colorArray[u]) {           return false;       //जब u और आसन्न एक ही रंग के हों।         }       }     }     return true; } int main() {     bool check;     check = isBipartite(0);     if(check)       cout << "The graph is bipartite." << endl;     else       cout << "The graph is not bipartite." << endl; }

आउटपुट

The graph is bipartite.

  1. विंडोज 10 में राउटर का IP एड्रेस कैसे खोजें विंडोज 10 में राउटर का IP एड्रेस कैसे खोजें

    कभी-कभी, आप खुद को अपने राउटर की सेटिंग्स तक पहुंचने की इच्छा रखते हुए पा सकते हैं। हालांकि, राउटर पर सेटिंग्स बदलने का साधन इसके लोकल नेटवर्क पर इसके डिवाइस पेज तक पहुंचकर है। यह आमतौर पर ब्राउज़र में इसका लोकल IP एड्रेस डालकर और एंटर दबाकर किया जाता है। दुर्भाग्य से, कोई डिफ़ॉल्ट IP नहीं है जिसका

  1. विंडोज 11 उत्पाद कुंजी कैसे खोजें विंडोज 11 उत्पाद कुंजी कैसे खोजें

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

  1. एक्सेल में सर्च कैसे करें एक्सेल में सर्च कैसे करें

    एक्सेल में सर्च करने के कई तरीके हैं। पहला विकल्प तब है जब आपके पास डेटा की एक विशाल स्प्रेडशीट है और किसी सेल या सेल्स के समूह में डेटा के एक विशेष टुकड़े को ढूंढने की आवश्यकता है। दूसरे विकल्पों के सेट में VLOOKUP या HLOOKUP जैसे सर्च फंक्शन्स का उपयोग शामिल है जो आपको एक शीट में डेटा खोजने और परि