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

C++ में डिस्कनेक्टेड ग्राफ के लिए BFS


डिस्कनेक्टेड ग्राफ एक ग्राफ है जिसमें एक या अधिक नोड्स ग्राफ के एंडपॉइंट्स नहीं होते यानी वे कनेक्टेड नहीं होते।

C++ में डिस्कनेक्टेड ग्राफ के लिए BFS

एक डिस्कनेक्टेड ग्राफ...

अब, सिंपल BFS केवल तब लागू होता है जब ग्राफ कनेक्टेड हो यानी ग्राफ के सभी वर्टेक्स ग्राफ के एक नोड से एक्सेसिबल हों। उपरोक्त डिस्कनेक्टेड ग्राफ में तकनीक संभव नहीं है क्योंकि कुछ नियम एक्सेसिबल नहीं हैं इसलिए ब्रेडथ फर्स्ट सर्च को डिस्कनेक्टेड ग्राफ में करने के लिए निम्नलिखित बदला हुआ प्रोग्राम बेहतर होगा।

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

void insertnode(vector<int> adj[], int u, int v) { 
    adj[u].push_back(v); 
} 

void breathFirstSearch(int u, vector<int> adj[], vector<bool> &visited) { 
    list<int> q; 
    visited[u] = true; 
    q.push_back(u); 
    while (!q.empty()) { 
        u = q.front(); 
        cout << u << " "; 
        q.pop_front(); 
        for (int i = 0; i != adj[u].size(); ++i) { 
            if (!visited[adj[u][i]]) { 
                visited[adj[u][i]] = true; 
                q.push_back(adj[u][i]); 
            } 
        } 
    } 
} 

void BFSdisc(vector<int> adj[], int V) { 
    vector<bool> visited(V, false); 
    for (int u = 0; u < V; u++) 
        if (visited[u] == false) 
            breathFirstSearch(u, adj, visited); 
} 

int main() { 
    int V = 5; 
    vector<int> adj[V]; 
    insertnode(adj, 0, 23); 
    insertnode(adj, 0, 4); 
    insertnode(adj, 1, 2); 
    insertnode(adj, 1, 3); 
    insertnode(adj, 1, 4); 
    insertnode(adj, 2, 3); 
    insertnode(adj, 3, 4); 
    BFSdisc(adj, V); 
    return 0; 
}

आउटपुट

0 4 1 2 3

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. C++ में ऑक्टल से डेसिमल रूपांतरण C++ में ऑक्टल से डेसिमल रूपांतरण

    एक ऑक्टल संख्या इनपुट के रूप में दी गई है, कार्य दी गई ऑक्टल संख्या को डेसिमल संख्या में बदलना है। कंप्यूटर में डेसिमल संख्याओं को आधार 10 के साथ दर्शाया जाता है और ऑक्टल संख्या को आधार 8 के साथ दर्शाया जाता है जो अंक 0 से 7 तक होती है जबकि डेसिमल संख्याएं 0-9 से शुरू होने वाला कोई भी संख्यात्मक अंक

  1. C++ में STL का उपयोग करके BFS (प्रतिस्पर्धी प्रोग्रामिंग के लिए) C++ में STL का उपयोग करके BFS (प्रतिस्पर्धी प्रोग्रामिंग के लिए)

    ब्रेडथ फर्स्ट सर्च (BFS) क्या है? ब्रेडथ फर्स्ट सर्च (BFS) ट्रैवर्सल एक एल्गोरिदम है जिसका उपयोग दिए गए ग्राफ के सभी नोड्स को विजिट करने के लिए किया जाता है। इस ट्रैवर्सल एल्गोरिदम में एक नोड चुना जाता है और फिर सभी आसन्न नोड्स को एक-एक करके विजिट किया जाता है। सभी आसन्न वर्टेक्स पूरे होने के बाद,