Wednesday, 22 November 2017

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


Code:

#include   iostream
#include   iomanip

using namespace std;

// A function to print the adjacency matrix.
void PrintMat(int mat[][20], int n)
{
int i, j;

cout<<"\n\n"<
for(i = 0; i < n; i++)
cout<
cout<<"\n\n";

// Print 1 if the corresponding vertexes are connected otherwise 0.
for(i = 0; i < n; i++)
{
cout<
for(j = 0; j < n; j++)
{
cout<
}
cout<<"\n\n";
}
}

int main()
{
int NOV, i, j, AdjMat[20][20] = {0};
cout<<"Enter the number of vertex in the graph: ";
cin>>NOV;

int degseq[NOV];
// Take input of the degree sequence.
for(i = 0; i < NOV; i++)
{
cout<<"Enter the degree of "<
cin>>degseq[i];
}

for(i = 0; i < NOV; i++)
{
for(j = i+1; j < NOV; j++)
{
// For each pair of vertex decrement the degree of both vertex.
if(degseq[i] > 0 && degseq[j] > 0)
{
degseq[i]--;
degseq[j]--;
AdjMat[i][j] = 1;
AdjMat[j][i] = 1;
}
}
}

PrintMat(AdjMat, NOV);
}



Output:

Case 1:
Enter the number of vertex in the graph: 7
Enter the degree of 1 vertex: 9
Enter the degree of 2 vertex: 7
Enter the degree of 3 vertex: 7
Enter the degree of 4 vertex: 5
Enter the degree of 5 vertex: 5
Enter the degree of 6 vertex: 3
Enter the degree of 7 vertex: 2

No valid graph can be generated from the given degree sequence.

Case 2:
Enter the number of vertex in the graph: 5
Enter the degree of 1 vertex: 7
Enter the degree of 2 vertex: 7
Enter the degree of 3 vertex: 6
Enter the degree of 4 vertex: 6
Enter the degree of 5 vertex: 5

The Graph cannot have edges more than 10 for 5 vertexes.

Case 3:
Enter the number of vertex in the graph: 7
Enter the degree of 1 vertex: 5
Enter the degree of 2 vertex: 3
Enter the degree of 3 vertex: 3
Enter the degree of 4 vertex: 2
Enter the degree of 5 vertex: 2
Enter the degree of 6 vertex: 1
Enter the degree of 7 vertex: 0

Valid graph from the given degree sequence is:

         (1)  (2)  (3)  (4)  (5)  (6)  (7)

   (1)    0    1    1    1    1    1    0

   (2)    1    0    1    1    0    0    0

   (3)    1    1    0    0    1    0    0

   (4)    1    1    0    0    0    0    0

   (5)    1    0    1    0    0    0    0

   (6)    1    0    0    0    0    0    0

   (7)    0    0    0    0    0    0    0



More C++ Programs:















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...