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

सी ++ प्रोग्राम 2डी एरेज़ का उपयोग करके ग्राफ़ का प्रतिनिधित्व करने के लिए

यह एक C++ प्रोग्राम है जो 2D सरणियों का उपयोग करके ग्राफ़ का प्रतिनिधित्व करता है।

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

एल्गोरिदम

Begin
   Take the input of the number of vertex ‘v’ and edges ‘e’.
   Assign memory to the graph[][] matrix.
   Take the input of ‘e’ pairs of vertexes of the given graph in graph[][].
   For each pair of connected vertex(v1, v2), store 1 in the graph[][] at the index (v1, v2) and (v2, v1).
   Print the matrix using PrintMatrix().
End
. का उपयोग करके मैट्रिक्स को प्रिंट करें

उदाहरण कोड

#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<<"Enter the number of vertexes of the graph: ";
   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<<"\nEnter the number of edges of the graph: ";
   cin>>e;
   for(i = 0; i < e; i++) {
      cout<<"\nEnter the vertex pair for edge "<<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);
}

आउटपुट

Enter the number of vertexes of the graph: 5
Enter the number of edges of the graph: 4
Enter the vertex pair for edge 1
V(1): 2
V(2): 1
Enter the vertex pair for edge 2
V(1): 3
V(2): 2
Enter the vertex pair for edge 3
V(1): 1
V(2): 1
Enter the vertex pair for edge 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++ प्रोग्राम इंसीडेंस मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए

    एक ग्राफ की घटना मैट्रिक्स मेमोरी में स्टोर करने के लिए ग्राफ का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। आपतन मैट्रिक्स का क्रम V x E है। जहाँ V शीर्षों की संख्या है और E ग्राफ़ में किनारों की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम कोने रख रहे हैं, और प्रत्येक कॉलम

  1. सी ++ प्रोग्राम आसन्न मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए

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

  1. सी++ प्रोग्राम डीएफएस का उपयोग करके निर्देशित ग्राफ की कनेक्टिविटी की जांच करने के लिए

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