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

C++ प्रोग्राम: 2D एरे का उपयोग करके ग्राफ प्रतिनिधित्व

परिचय

यह एक C++ प्रोग्राम है जो 2D एरे का उपयोग करके ग्राफ को दर्शाता है।

इस एल्गोरिदम की समय जटिलता O(v*v) है।

एल्गोरिदम

वर्टेक्स 'v' और एज 'e' की संख्या का इनपुट लें। graph[][] मैट्रिक्स को मेमोरी असाइन करें। दिए गए ग्राफ में 'e' वर्टेक्स जोड़े का इनपुट graph[][] में लें। जुड़े हुए प्रत्येक वर्टेक्स जोड़े (v1, v2) के लिए, graph[][] में इंडेक्स (v1, v2) और (v2, v1) पर 1 स्टोर करें। PrintMatrix() का उपयोग करके मैट्रिक्स प्रिंट करें।

उदाहरण कोड

#include <iostream>
#include <iomanip>
using namespace std;

void PrintMatrix(int **matrix, int n) {
    int i, j;
    cout << "\n\n" << setw(4) << "";
    for (i = 0; i < n; i++)
        cout << setw(3) << "(" << i+1 << ")";
    cout << "\n\n";
    for (i = 0; i < n; i++) {
        cout << setw(3) << "(" << i+1 << ")";
        for (j = 0; j < n; j++) {
            cout << setw(4) << matrix[i][j];
        }
        cout << "\n\n";
    }
}

int main() {
    int i, v, e, j, v1, v2;
    cout << "ग्राफ के वर्टेक्स की संख्या दर्ज करें: ";
    cin >> v;
    int **graph;
    graph = new int*[v];
    for (i = 0; i < v; i++) {
        graph[i] = new int[v];
        for (j = 0; j < v; j++)
            graph[i][j] = 0;
    }
    cout << "\nग्राफ के एज की संख्या दर्ज करें: ";
    cin >> e;
    for (i = 0; i < e; i++) {
        cout << "\nएज " << i+1 << " के लिए वर्टेक्स जोड़ा दर्ज करें";
        cout << "\nV(1): ";
        cin >> v1;
        cout << "V(2): ";
        cin >> v2;
        graph[v1-1][v2-1] = 1;
        graph[v2-1][v1-1] = 1;
    }
    PrintMatrix(graph, v);
    return 0;
}

आउटपुट

ग्राफ के वर्टेक्स की संख्या दर्ज करें: 5
ग्राफ के एज की संख्या दर्ज करें: 4
एज 1 के लिए वर्टेक्स जोड़ा दर्ज करें
V(1): 2
V(2): 1
एज 2 के लिए वर्टेक्स जोड़ा दर्ज करें
V(1): 3
V(2): 2
एज 3 के लिए वर्टेक्स जोड़ा दर्ज करें
V(1): 1
V(2): 1
एज 4 के लिए वर्टेक्स जोड़ा दर्ज करें
V(1): 3
V(2): 1
(1) (2) (3) (4) (5)
(1) 1 1 1 0 0
(2) 1 0 1 0 0
(3) 1 1 0 0 0
(4) 0 0 0 0 0
(5) 0 0 0 0 0
  1. C++ प्रोग्राम: इन्सिडेंस मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना C++ प्रोग्राम: इन्सिडेंस मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना

    एक ग्राफ का इन्सिडेंस मैट्रिक्स ग्राफ को मेमोरी में स्टोर करने का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। इन्सिडेंस मैट्रिक्स का ऑर्डर V x E होता है। जहां V वर्टेक्स की संख्या है और E ग्राफ में एज की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम वर्टेक्स रखते हैं, और प्रत

  1. C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना

    एक ग्राफ का एडजेसेंसी मैट्रिक्स V x V आकार का एक वर्ग मैट्रिक्स होता है। V ग्राफ G के वर्टेक्स की संख्या है। इस मैट्रिक्स में प्रत्येक तरफ V वर्टेक्स मार्क किए जाते हैं। यदि ग्राफ में i से j वर्टेक्स तक कुछ एज हैं, तो एडजेसेंसी मैट्रिक्स में i-वीं पंक्ति और j-वें कॉलम में 1 होगा (या वेटेड ग्राफ के

  1. C++ प्रोग्राम: DFS का उपयोग करके निर्देशित ग्राफ की कनेक्टिविटी जांचना C++ प्रोग्राम: DFS का उपयोग करके निर्देशित ग्राफ की कनेक्टिविटी जांचना

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