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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.