

- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ Program to Create a Random Graph Using Random Edge Generation
In this program a random graph is generated for random vertices and edges. The time complexity of this program is O(v * e). Where v is the number of vertices and e is the number of edges.
Algorithm
Begin Develop a function GenRandomGraphs(), with ‘e’ as the number of edges and ‘v’ as the number of vertexes, in the argument list. Assign random values to the number of vertex and edges of the graph, using rand() function. Print the connections of each vertex, irrespective of the direction. Print “Isolated vertex” for the vertex having no degree. End
Example
#include<iostream> #include<stdlib.h> using namespace std; void GenRandomGraphs(int NOEdge, int NOVertex) { int i, j, edge[NOEdge][2], count; i = 0; //Assign random values to the number of vertex and edges of the graph, Using rand(). while(i < NOEdge) { edge[i][0] = rand()%NOVertex+1; edge[i][1] = rand()%NOVertex+1; //Print the connections of each vertex, irrespective of the direction. if(edge[i][0] == edge[i][1]) continue; else { for(j = 0; j < i; j++) { if((edge[i][0] == edge[j][0] && edge[i][1] == edge[j][1]) || (edge[i][0] == edge[j][1] && edge[i][1] == edge[j][0])) i--; } }i ++; } cout<<"\nThe generated random graph is: "; for(i = 0; i < NOVertex; i++) { count = 0; cout<<"\n\t"<<i+1<<"-> { "; for(j = 0; j < NOEdge; j++) { if(edge[j][0] == i+1) { cout<<edge[j][1]<<" "; count++; } else if(edge[j][1] == i+1) { cout<<edge[j][0]<<" "; count++; } else if(j== NOEdge-1 && count == 0) cout<<"Isolated Vertex!"; //Print “Isolated vertex” for the vertex having no degree. } cout<<" }"; } } int main() { int i, e, n; cout<<"Random graph generation: "; n= 7 + rand()%6; cout<<"\nThe graph has "<<n<<" vertices"; e = rand()%((n*(n-1))/2); cout<<"\nand has "<<e<<" edges."; GenRandomGraphs(e, n); }
Output
Random graph generation: The graph has 8 vertices and has 18 edges. The generated random graph is: 1-> { 5 4 2 } 2-> { 4 8 6 3 1 5 } 3-> { 5 4 7 2 } 4-> { 2 3 7 1 8 5 } 5-> { 3 1 7 4 2 8 } 6-> { 2 8 7 } 7-> { 4 3 5 6 } 8-> { 2 6 4 5 }
- Related Questions & Answers
- C++ Program to Construct a Random Graph by the Method of Random Edge Selection
- Random number generation in C++
- What are True Random Number Generation?
- C++ Program to Implement Park-Miller Random Number Generation Algorithm
- Java Program to Create random strings
- C++ Program to Implement the linear congruential generator for Pseudo Random Number Generation
- Java Program to create random BigInteger within a given range
- C++ Program to Create a Random Linear Extension for a DAG
- Generate random numbers using C++11 random library
- C++ Program to Generate a Random UnDirected Graph for a Given Number of Edges
- C++ Program to Perform Edge Coloring of a Graph
- C++ Program to Find the Edge Connectivity of a Graph
- C++ program to Calculate the Edge Cover of a Graph
- C++ Program to Generate a Random Directed Acyclic Graph DAC for a Given Number of Edges
- Java program to generate random numbers
Advertisements