Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This project requires you to develop object oriented programs of a graph that ca

ID: 3798049 • Letter: T

Question

This project requires you to develop object oriented programs of a graph that can achieve the following functions. A graph can be empty with no vertex or edge. A graph can be either a directed graph or an undirected graph. A graph can be added in vertices and edges. A vertex of a graph can contain values - in theory, the values can be of any type. A graph can be displayed by listing all the possible paths, each linking vertices. A graph can be queried by given a starting vertex, listing the path this vertex leads. A graph can be queried by given an edge, if this edge exists in the graph A graph can be queried if a value is contained by any of its vertex.

Explanation / Answer

#include<stduio.h>

#include<stdlib.h>

void main()

{

int option;

do

{

printf(" A Program to repersent a Graph by using an");

printf("Adjacency Matrix method ");

printf(" 1.Directed Graph");

printf(" 2.Un-Directed Graph ");

printf(" 3.Exit");

printf(" Select a proper option:");

scanf("%d",&option);

switch(option)

{

case 1:dir_graph():

break;

case 2:undir_graph();

break;

case 3:exit(0);

}

}

while(1);

}

int dir_graph()

{

int adj_mat[50][50];

int n;

int in_deg,out_deg, i, j;

printf(" How Many vertices ?:");

scanf("%d",&n);

printf(" vertex In Degree Out_Degree Total_Degree ");

for(i=1; i<n; i++)

{

in_deg = out_deg = 0;

for(j = 1; j<=n; j++)

{

if(adj_mat[j][i]==1)

in_deg++;

}

for(j=1; j<=n; j++)

if(adj_mat[i][j]==1)

out_deg++;

printf(" %5 %d %d %d ", i, in_deg, out_deg, in_deg +out_deg);

}

return;

}

int undir_graph()

{

int adj_mat[50][50];

int deg,i,j,n;

printf(" How many vertices");

scanf("%d",&n);

read_graph(adj_mat,n);

printf("n vertex Degre");

for (i=1; i<=n; i++)

{

deg=0;

for(j=1; j<=n; j++)

if(adj_mat[i][j]==1)

deg++;

printf(" %5d %d ", i, deg);

}

return;

}

int read_graph(int adj_mat[50][50], int n)

{

int i, j;

char reply;

for (i=1;i<n;i++)

{

for(j=1;j<=n;j++)

{

if(i==j)

{

adj_mat[i][j]=0;

continue;

}

printf(" Vertices %d & %d are Adjacent" i,j);

scanf("%c",&reply);

if(reply=='y'|| reply == 'Y')

adj_mat[i][j]=1;

else

adj_mat[i][j]=0;

}

}

retrurn;

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote