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

C++ में अनिर्देशित ग्राफ (Undirected Graph) में किनारों (edges) की गिनती


समस्या विवरण

एक अनिर्देशित ग्राफ (undirected graph) दिया गया है। हमें ग्राफ में कुल किनारों (edges) की संख्या गिननी है। अनिर्देशित ग्राफ में सभी किनारे द्विदिश (bidirectional) होते हैं।

दृश्य प्रतिनिधित्व

C++ में अनिर्देशित ग्राफ (Undirected Graph) में किनारों (edges) की गिनती

उदाहरण

इनपुट

किनारे: (0,1), (0,2), (1,2), (1,4), (2,4), (2,3), (3,4)

आउटपुट

किनारों की संख्या: 7

समाधान दृष्टिकोण

सन्निकटता सूची (adjacency list) में, प्रत्येक किनारा दो बार गिना जाता है (एक बार प्रत्येक शीर्ष के लिए)। इसलिए:

कुल_किनारे = (सभी शीर्षों के आसन्न सूची आकारों का योग) / 2

कार्यकारी प्रोग्राम

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

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

void countEdges(list<int> adj[], int V) {
    int count = 0;
    for (int i = 0; i < V; i++) {
        count += adj[i].size();
    }
    count /= 2; // प्रत्येक किनारा दो बार गिना गया
    cout << "किनारों की संख्या: " << count;
}

int main() {
    int V = 5;
    list<int> adj[V];
    
    insertEdge(adj, 0, 1);
    insertEdge(adj, 0, 2);
    insertEdge(adj, 1, 2);
    insertEdge(adj, 1, 4);
    insertEdge(adj, 2, 4);
    insertEdge(adj, 2, 3);
    insertEdge(adj, 3, 4);
    
    countEdges(adj, V);
    return 0;
}

आउटपुट

किनारों की संख्या: 7
  1. - C++ कोड: अनपढ़ अध्यायों की संख्या गिनें

    मान लीजिए हमारे पास जोड़े की एक सरणी P है। जहां P[i] (l, r) के रूप में है, और एक अन्य संख्या k है। मान लीजिए हम n अध्यायों वाली एक किताब पढ़ने जा रहे हैं। ताकि किताब का एक पेज ठीक एक अध्याय से संबंधित हो और प्रत्येक अध्याय में कम से कम एक पेज हो। हमने कुछ पेज पढ़े हैं और पेज नंबर k को पहले पेज के रू

  1. दिए गए ग्राफ में ब्रिज एज की संख्या ज्ञात करने का C++ प्रोग्राम दिए गए ग्राफ में ब्रिज एज की संख्या ज्ञात करने का C++ प्रोग्राम

    मान लीजिए n वर्टेक्स और m एज वाला एक अनभारित, निदेश रहित ग्राफ दिया गया है। ग्राफ में एक ब्रिज एज वह एज है जिसे हटाने से ग्राफ असंबद्ध हो जाता है। हमें दिए गए ग्राफ में ऐसी एज की संख्या ज्ञात करनी है। ग्राफ में समानांतर एज या सेल्फ-लूप नहीं हैं। उदाहरण के लिए, यदि इनपुट है n = 5, m = 6, edges = {{1

  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर