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

C++ प्रोग्राम: कम्पलीट ग्राफ पर एज कलरिंग करें


एक कम्पलीट ग्राफ एक ग्राफ है जिसमें वर्टेक्स के किसी भी जोड़े के बीच एक कनेक्टिंग एज होती है। यह कम्पलीट ग्राफ पर एज कलरिंग करने का C++ प्रोग्राम है।

एल्गोरिदम

Begin    वर्टेक्स की संख्या 'n' का इनपुट लें।    ed[][] में e=n*(n-1)/2 एज का उपयोग करके एक कम्पलीट ग्राफ बनाएं।    फंक्शन EdgeColor() का उपयोग ग्राफ एज को कलर करने के लिए किया जाता है।    A) वर्तमान एज को कलर c असाइन करें यानी शुरुआत में 1।    B) यदि वही कलर किसी भी आसन्न एज द्वारा कब्जा कर लिया गया है, तो       इस कलर को छोड़ दें और फिर से फ्लैग पर जाएं और अगले कलर का प्रयास करें।    C) प्रत्येक एज के लिए कलर प्रिंट करें। End

उदाहरण

#include<iostream> using namespace std; void EdgeColor(int ed[][3], int e) {    int i, c, j;    for(i = 0; i < e; i++) {       c = 1; //वर्तमान एज को कलर c असाइन करें यानी शुरुआत में 1।       flag:          ed[i][2] = c;          //यदि वही कलर किसी भी आसन्न एज द्वारा कब्जा कर लिया गया है, तो          इस कलर को छोड़ दें और फिर से फ्लैग पर जाएं और अगले कलर का प्रयास करें।          for(j = 0; j < e; j++) {             if(j == i)                continue;                if(ed[j][0] == ed[i][0] || ed[j][0] == ed[i][1] || ed[j][1] == ed[i][0] || ed[j][1] == ed[i][1]) {                   if(ed[j][2] == ed[i][2]) {                      c++;                      goto flag;                   }                }          }    } } int main() {    int i, n, e, j, cnt = 0;    cout<<"Enter the number of vertexes for the complete graph: ";    cin>>n;    e = (n*(n-1))/2;    int ed[e][3];    for(i = 1; i <= n; i++) {       for(j = i+1; j <= n; j++) {          ed[cnt][0] = i;          ed[cnt][1] = j;          ed[cnt][2] = -1;          cnt++;       }    }    EdgeColor(ed , e);    for(i = 0; i < e; i++)       cout<<"\nThe color of the edge between vertex       n1):"<<ed[i][0]<<" and n(2):"<<ed[i][1]<<" is: color"<<ed[i][2]<<"."; }

आउटपुट

Enter the number of vertexes for the complete graph: 4 The color of the edge between vertex n(1):1 and n(2):2 is: color1. The color of the edge between vertex n(1):1 and n(2):3 is: color2. The color of the edge between vertex n(1):1 and n(2):4 is: color3. The color of the edge between vertex n(1):2 and n(2):3 is: color3. The color of the edge between vertex n(1):2 and n(2):4 is: color2. The color of the edge between vertex n(1):3 and n(2):4 is: color1.

  1. कुछ शर्तों के साथ ग्राफ बनाने के लिए C++ प्रोग्राम कुछ शर्तों के साथ ग्राफ बनाने के लिए C++ प्रोग्राम

    मान लीजिए हमारे पास दो संख्याएं N और K हैं। N तत्वों वाला एक निदेशित ग्राफ पर विचार करें। N शीर्ष निम्नलिखित शर्तों को पूरा करते हैं: ग्राफ सरल और जुड़ा हुआ है शीर्ष 1 से N तक गिने जाते हैं मान लें M ग्राफ में किनारों की संख्या है। किनारों को 1 से M तक गिना जाता है। किनारे की लंबाई 1 है। और किनारा

  1. C++ में पूर्ण ग्राफ से अधिकतम संभव एज-डिसजॉइंट स्पैनिंग ट्री C++ में पूर्ण ग्राफ से अधिकतम संभव एज-डिसजॉइंट स्पैनिंग ट्री

    मान लीजिए हमारे पास एक पूर्ण ग्राफ है; हमें एज-डिसजॉइंट स्पैनिंग ट्री की संख्या गिननी है। एज-डिसजॉइंट स्पैनिंग ट्री वे स्पैनिंग ट्री हैं, जहां सेट में कोई दो ट्री एक एज साझा नहीं करते। मान लीजिए N (शीर्षों की संख्या) 4 है, तो आउटपुट 2 होगा। 4 शीर्षों का उपयोग करके पूर्ण ग्राफ नीचे जैसा है -दो एज-डिस

  1. C++ में ग्राफ के एज कवर की गणना करें C++ में ग्राफ के एज कवर की गणना करें

    एक ग्राफ के n वर्टेक्स की संख्या दी गई है, कार्य ग्राफ के एज कवर की गणना करना है। एज कवर ग्राफ के हर वर्टेक्स को कवर करने के लिए आवश्यक न्यूनतम एज की संख्या खोजना है। जैसे हमारे पास n = 5 है तो इसका ग्राफ ऐसा होगा: इसका एज कवर 3 है आइए एक और उदाहरण लेते हैं जहां n = 8 है और इसका एज कवर होगा: 4 उ