#include <stdio.h>

#include <stdlib.h>


#define MAX_VERTEX 10


typedef struct GraphNode{

    int vertex;

    struct GraphNode *link;

}GraphNode;


typedef struct GraphType

{

    int n; // 정점의 갯수

    GraphNode *adj_list[MAX_VERTEX]; // 구조체 그래프노드에 대한 포인터들의 배열 > 인접리스트를 이용한 그래프 구현

}GraphType;


void InitGraph(GraphType *g)

{

    int v;

    g->n=0;

    for(v=0;v<MAX_VERTEX;v++)

        g->adj_list[v]=NULL;

}


void InsertVertex(GraphType *g,int v)

{

    if((g->n)+1 > MAX_VERTEX)

    {

        printf("정점 갯수 초과\n");

        exit(-1);

    }


    g->n++;

}


void InsertEdge(GraphType *g,int u,int v)  // u에서 v로 향하는 edge 만들기

{

    GraphNode *node;

    if(u >= g->n || v >= g->n)

    {

        printf("잘못된 정점 입력\n");

        exit(-1);

    }


    node=(GraphNode*)malloc(sizeof(GraphNode));

    node->vertex=v;

    node->link = g->adj_list[u];


    g->adj_list[u]=node;

}



그다음부턴 메인!

책에서 보고 이상하다 싶어서 구글링해봤는데 책이랑 똑같이 나오길래 질문햇어여ㅜ