C++ Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence

C++Server Side ProgrammingProgramming

It is a program to check possibility of construction of a graph in a given degree sequence.

Input

It takes the no of edges and vertexes.

Output

It shows the random values of a created graph.

Algorithms

Begin
Declare a function RandomGraphs().
Declare NoEdge and NoVertex of the integer datatype and pass them as parameter.
Declare i, j, e[NoEdge], c of the integer datatype.
Initialize i = 0.
while (i < NoEdge) do
e[i] = rand()%NoVertex+1.
e[i] = rand()%NoVertex+1.
if(e[i] == e[i]) then
continue.
else
for(j = 0; j < i; j++)
if((e[i] == e[j] && e[i] == e[j]) || (e[i] == e[j] && e[i] == e[j])) then
i--.
i++.
Print “The randomly generated graph:”.
for(i = 0 to NoVertex-1)
c = 0;
Print "Vertex number ".
Print the number of vertex.
for(j = 0 to NoEdge-1)
if(e[j] == i+1) then
Print the value of e[j].
c++.
else if(e[j] == i+1) then
Print the value of e[j].
c++.
else if(j == NoEdge-1 and c == 0) then
Print "This vertex is isolated!!!".
End
Begin
Declare edg, ver of the integer datatype.
Print "generation of a random graph: ".
Print "Enter the number of vertexes for the graph: ".
Take input of the value of ver variable.
Print "Enter the number of edges for the graph: ".
Take input of the value of edg variable.
Call RandomGraphs(edg, ver) to generate a random undirected graph with edg edges and ver vertexes.
End.

Example

#include<iostream>
#include<stdlib.h>
using namespace std;
void RandomGraphs(int NoEdge, int NoVertex) { // generate random graph.
int i, j, e[NoEdge], c;
i = 0;
while(i < NoEdge) { // Build a connection between two vertexes
e[i] = rand()%NoVertex+1;
e[i] = rand()%NoVertex+1;
if(e[i] == e[i])
continue;
else {
for(j = 0; j < i; j++) {
if((e[i] == e[j] && e[i] == e[j]) || (e[i] == e[j] && e[i] == e[j]))
i--;
}
}
i++;
}
cout<<"The randomly generated graph: \n";
for(i = 0; i < NoVertex; i++) { // printing the graph
c = 0;
cout<<"Vertex number "<<i+1<<": \t { ";
for(j = 0; j < NoEdge; j++) {
if(e[j] == i+1) {
cout<<e[j]<<" ";
c++;
} else if(e[j] == i+1) {
cout<<e[j]<<" ";
c++;
} else if(j == NoEdge-1 && c == 0)
cout<<"This vertex is isolated!!!";
}
cout<<" }\n";
}
}
int main() {
int edg, ver;
cout<<"generation of a random graph: ";
// Take the input of the vertex and edges.
cout<<"\nEnter the number of vertexes for the graph: ";
cin>>ver;
cout<<"\nEnter the number of edges for the graph: ";
cin>>edg;
RandomGraphs(edg, ver); // Call function to generate a random undirected graph with edg edges and ver vertexes.
}

Output

generation of a random graph:
Enter the number of vertexes for the graph: 5

Enter the number of edges for the graph: 5
The randomly generated graph:
Vertex number 1: { 5 3 }
Vertex number 2: { 3 5 }
Vertex number 3: { 2 5 1 }
Vertex number 4: { This vertex is isolated!!! }
Vertex number 5: { 1 3 2 }