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

C++ प्रोग्राम पूरा ग्राफ पर एज कलरिंग करने के लिए

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

एल्गोरिदम

Begin
   Take the input of the number of vertices ‘n’.
   Construct a complete graph using e=n*(n-1)/2 edges, in ed[][].
   Function EdgeColor() is used to Color the graph edges.
   A) Assign color to current edge as c i.e. 1 initially.
   B) If the same color is occupied by any of the adjacent edges, then
      discard this color and go to flag again and try next color.
   C) Print the color for each edge.
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; //assign color to current edge as c i.e. 1 initially.
      flag:
         ed[i][2] = c;
         //If the same color is occupied by any of the adjacent edges, then
         discard this color and go to flag again and try next color.
         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++ प्रोग्राम कुछ शर्तों के साथ ग्राफ बनाने के लिए

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

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

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

  1. C++ प्रोग्राम ग्राफ के एज कवर की गणना करने के लिए

    ग्राफ़ के शीर्षों की संख्या को देखते हुए, कार्य ग्राफ़ के किनारे कवर की गणना करना है। एज कवर ग्राफ़ के प्रत्येक शीर्ष को कवर करने के लिए आवश्यक किनारों की न्यूनतम संख्या ज्ञात करना है। जैसे हमारे पास n =5 . है तो इसका ग्राफ इस तरह होगा - तो इसका किनारा कवर 3 . है आइए एक और उदाहरण लेते हैं जह