그래프 소스인데요..
소아
질문 내용 :
그래프 소스인데요. 저기서 매개변수로 받는 inv v가 어떤 역할을 해주는지 잘 모르겠습니다.
그리고 g-n++이 어떤 역할을 해주는지 궁금합니다.
답변 부탁드립니다.
#include stdio.h
#include stdlib.h
#define max_vertices 50
typedef struct graphtype {
int n; //정점의 개수
int adj_mat[max_vertices][max_vertices];//nxn 2차원 배열
}graphtype;
void graph_init(graphtype *g)
{
int r, c;
g-n=0;
for(r=0; rmax_vertices; r++)
for(c=0;cmax_vertices;c++)
g-adj_mat[r][c]=0;
}
void insert_vertex(graphtype *g, int v)
{
if(((g-n)+1) max_vertices){
fprintf(stderr, 그래프 정점의 개수 초과);
return;
}
g-n++;
}
void insert_edge(graphtype *g, int start, int end)
{
if(start = g-n || end = g-n){
fprintf(stderr, 그래프 정점 번호 오류);
return;
}
g-adj_mat[start][end]=1;
g-adj_mat[end][start]=1;
}
void print_adj_mat(graphtype *g)
{
int i, j;
for(i=0;i(g-n);i++){
printf(\n\t\t);
for(j=0;j(g-n);j++)
printf(%2d, g-adj_mat[i][j]);
}
}
void main()
{
int i;
graphtype *g1;
g1=(graphtype *)malloc(sizeof(graphtype));
graph_init(g1);
for(i=0;i4;i++)
insert_vertex(g1, i);
insert_edge(g1, 0, 1);
insert_edge(g1, 0, 2);
insert_edge(g1, 0, 3);
insert_edge(g1, 1, 2);
insert_edge(g1, 1, 0);
insert_edge(g1, 2, 3);
insert_edge(g1, 2, 1);
insert_edge(g1, 2, 0);
insert_edge(g1, 3, 2);
insert_edge(g1, 3, 0);
printf(\n g1의 인접행렬);
print_adj_mat(g1);
printf(\n);
}