# C++ Program to Generate a Random UnDirected Graph for a Given Number of Edges

C++Server Side ProgrammingProgramming

#### C in Depth: The Complete C Programming Guide for Beginners

45 Lectures 4.5 hours

#### Practical C++: Learn C++ Basics Step by Step

Most Popular

50 Lectures 4.5 hours

#### Master C and Embedded C Programming- Learn as you go

Best Seller

66 Lectures 5.5 hours

This is a C++ program in which we generate a undirected random graph for the given edges ‘e’. This algorithm basically implements on a big network and time complexity of this algorithm is O(log(n)).

## Algorithm

Begin
Function GenerateRandomGraphs(), has ‘e’ as the number edges in the argument list.
Initialize i = 0
while(i < e)
edge[i][0] = rand()%N+1
edge[i][1] = rand()%N+1
Increment I;
For i = 0 to N-1
Initialize count = 0
For j = 0 to e-1
if(edge[j][0] == i+1)
Print edge[j][1]
Increase count
else if(edge[j][1] == i+1)
Print edge[j][0]
Increase count
else if(j == e-1 && count == 0)
Print Isolated Vertex
End

## Example

Live Demo

#include<iostream>
#include<stdlib.h>
#define N 10
using namespace std;
void GenerateRandomGraphs(int e) {
int i, j, edge[e][2], count;
i = 0;
// generate a connection between two random numbers, for //sample a small case, limit the number of vertex to 10.
while(i < e) {
edge[i][0] = rand()%N+1;
edge[i][1] = rand()%N+1;
i++;
}
//Print all the connection of each vertex, irrespective of the //direction.
cout<<"The generated random graph is: ";
for(i = 0; i < N; i++) {
count = 0;
cout<<"\t"<<i+1<<"-> { ";
for(j = 0; j < e; j++) {
if(edge[j][0] == i+1) {
cout<<edge[j][1]<<" ";
count++;
}
else if(edge[j][1] == i+1) {
cout<<edge[j][0]<<" ";
count++;
}
//Print “Isolated vertex” for the vertex having zero degree.
else if(j == e-1 && count == 0)
cout<<"Isolated Vertex!";
}
cout<<" }";
}
}
int main() {
int n, i ,e;
cout<<"Enter the number of edges for the random graphs: ";
cin>>e;
GenerateRandomGraphs(e);
}

## Output

Enter the number of edges for the random graphs: 10

The generated random graph is:
1-> { 10 7 }
2-> { 10 }
3-> { 7 8 7 }
4-> { 7 6 7 }
5-> { Isolated Vertex! }
6-> { 8 4 }
7-> { 4 3 4 1 3 }
8-> { 6 3 }
9-> { Isolated Vertex! }
10-> { 2 1 }
Updated on 30-Jul-2019 22:30:26