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

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

परिचय

यह एक C++ प्रोग्राम है जो दिए गए डिग्री सीक्वेंस के लिए एक अनडायरेक्टेड ग्राफ को दर्शाता है। इस एल्गोरिदम की समय जटिलता O(v*v) है और इसमें सेल्फ-एज और मल्टीपल एज शामिल नहीं हैं।

एल्गोरिदम

ग्राफ बनाने के लिए, प्रत्येक वर्टेक्स 'i' को जोड़ने के लिए पहला लूप बनाएं। वर्टेक्स 'i' को उसके बगल के प्रत्येक वैध वर्टेक्स 'j' से जोड़ने के लिए दूसरा नेस्टेड लूप बनाएं। यदि वर्टेक्स 'i' और 'j' की डिग्री शून्य से अधिक है, तो उन्हें कनेक्ट करें। PrintMatrix() का उपयोग करके एडजेसेंसी मैट्रिक्स प्रिंट करें।

उदाहरण कोड

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

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

int main() {
    int N, i, j, AdjMat[20][20] = {0};
    cout << "ग्राफ में वर्टेक्स की संख्या दर्ज करें: ";
    cin >> N;
    int degseq[N];
    for (i = 0; i < N; i++) {
        cout << "वर्टेक्स " << i+1 << " की डिग्री दर्ज करें: ";
        cin >> degseq[i];
    }
    for (i = 0; i < N; i++) {
        for (j = i+1; j < N; j++) {
            if (degseq[i] > 0 && degseq[j] > 0) {
                degseq[i]--;
                degseq[j]--;
                AdjMat[i][j] = 1;
                AdjMat[j][i] = 1;
            }
        }
    }
    PrintMatrix(AdjMat, N);
    return 0;
}

आउटपुट

ग्राफ में वर्टेक्स की संख्या दर्ज करें: 5
वर्टेक्स 1 की डिग्री दर्ज करें: 4
वर्टेक्स 2 की डिग्री दर्ज करें: 2
वर्टेक्स 3 की डिग्री दर्ज करें: 1
वर्टेक्स 4 की डिग्री दर्ज करें: 2
वर्टेक्स 5 की डिग्री दर्ज करें: 1
(1) (2) (3) (4) (5)
(1) 0 1 1 1 1
(2) 1 0 0 1 0
(3) 1 0 0 0 0
(4) 1 1 0 0 1
(5) 1 0 0 1 0
  1. C++ प्रोग्राम बाईसेक्शन मेथड के लिए C++ प्रोग्राम बाईसेक्शन मेथड के लिए

    फंक्शन f(x) दिया गया है जिसमें संख्या a और b हैं जहां, f(a) * f(b) > 0 और फंक्शन f(x) a और b के बीच होना चाहिए यानी f(x) = [a, b]। कार्य बाईसेक्शन मेथड का उपयोग करके फंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान खोजना है।बाईसेक्शन मेथड क्या है?बाईसेक्शन मेथड का उपयोग फंक्शन f(x) में दिए ग

  1. C++ में पिरामिड के आयतन का प्रोग्राम C++ में पिरामिड के आयतन का प्रोग्राम

    पिरामिड के बेस के प्रकार के आधार पर भुजाएं दी गई हैं, कार्य पिरामिड का आयतन गणना करना है।पिरामिड एक 3-D आकृति है जिसकी बाहरी सतहें त्रिकोणीय हैं जो सामान्य बिंदु पर मिलती हैं जिससे पिरामिड का तीक्ष्ण किनारा बनता है। पिरामिड का आयतन उसके बेस के प्रकार पर निर्भर करता है।पिरामिड के बेस के विभिन्न प्रका

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प