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

सी ++ प्रोग्राम एक ग्राफ के किनारे रंग प्रदर्शन करने के लिए

इस कार्यक्रम में, हम एक ग्राफ का एज कलरिंग करेंगे जिसमें हमें ग्राफ के किनारों को रंगना होगा कि कोई भी दो आसन्न किनारों का रंग समान न हो। उदाहरण के चरण।

एल्गोरिदम

आरंभ करें ग्राफ में शीर्षों की संख्या, n, और फिर किनारों की संख्या, e का इनपुट लें। ग्राफ़ को आसन्नता सूची के रूप में संग्रहीत किया जाता है। बीएफएस को क्यू का उपयोग करके कार्यान्वित किया जाता है और प्रत्येक किनारे पर रंग आवंटित किए जाते हैं। अंत

उदाहरण

#includeनेमस्पेस का उपयोग करना std;int n, e, i, j;vector>> g;vector color;bool v[111001]; शून्य कॉल (int n) {कतार q; इंट सी =0; सेट  vertex_colored; अगर (वी [एन]) वापसी; वी [एन] =1; for(i =0;i खाली; cout<<"क्रमशः शीर्षों और किनारों की संख्या दर्ज करें:"; सिन>>एन>>ई; कोउट <<"\ n"; जी आकार बदलें (एन); // कोने की संख्या रंग। आकार बदलें (ई, -1); // किनारों की संख्या मेमसेट (v, 0, sizeof (v)); for(i =0;i>यू>>डब्ल्यू; यू--; डब्ल्यू--; जी [यू]। पुश_बैक (मेक_पेयर (डब्ल्यू, आई)); जी [डब्ल्यू]। पुश_बैक (मेक_पेयर (यू, आई)); } कर्नल (0); for(i =0;i 

आउटपुट

क्रमशः शीर्षों और किनारों की संख्या दर्ज करें:4 5किनारे 1 के किनारे के कोने दर्ज करें:1 2किनारे 2 के किनारे के कोने दर्ज करें:2 3किनारे के किनारे के शीर्ष 3 दर्ज करें:1 1किनारे 4 के किनारे के कोने दर्ज करें:3 4किनारे 5 के किनारे के कोने दर्ज करें :1 4एज 1 रंग से रंगीन है 
  1. C++ प्रोग्राम ग्राफ में सुपर वर्टिस का पता लगाने के लिए

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं। कोने 1 से n तक गिने जाते हैं, और वे सरणी किनारों में दिए गए किनारों से जुड़े होते हैं। प्रत्येक शीर्ष का 1 से n तक की संख्या के भीतर x मान होता है जो कि सरणी मान में दिया जाता है। अब, हमें ग्राफ से अति शीर्षों का पता लगाना है। एक शीर्ष i को सु

  1. C++ में ग्राफ़ मान्य ट्री

    मान लीजिए कि हमारे पास n नोड्स हैं जिन्हें 0 से n-1 तक लेबल किया गया है और अप्रत्यक्ष किनारों की एक सूची [u,v] है, हमें यह जांचने के लिए एक फ़ंक्शन परिभाषित करना होगा कि ये किनारे एक वैध पेड़ बनाते हैं या नहीं। इसलिए, यदि इनपुट n =5, और किनारों =[[0,1], [0,2], [0,3], [1,4]] जैसा है, तो आउटपुट सही ह

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

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