프림 알고리즘을 구현하기 전에 그래프 알고리즘에 몇 가지 함수를 추가하기로 해요.
먼저 정점의 개수를 구하는 함수를 제공하기로 해요.
int Graph_GetVtCnt(Graph *graph);
그리고 그래프의 맨 앞에 있는 정점을 구하는 함수도 제공해요.
Vertex Graph_GetFront(Graph *graph);
마지막으로 간선에 특정 정점을 끝점으로 하는지 판별하는 함수를 제공하기로 해요.
int Edge_Include(Edge *edge,Vertex pt);
정점의 개수를 구하는 함수는 단순히 그래프에 있는 정점 컬렉션의 개수를 반환하게 구현하세요.
int Graph_GetVtCnt(Graph *graph) { return graph->vertexs->usage; }
그래프의 맨 앞에 있는 정점을 구하는 함수에서는 정점 컬렉션의 시작 위치의 정점을 반환하세요.
Vertex Graph_GetFront(Graph *graph) { Iterator front = Array_Begin(graph->vertexs); return (Vertex)front[0]; }
간선에 특정 정점을 끝점으로 하는지 판별하는 함수에서는 두 개의 끝점과 비교한 결과를 반환하겠죠.
int Edge_Include(Edge *edge,Vertex pt) { return (strcmp(edge->ep1,pt)==0)||(strcmp(edge->ep2,pt)==0); }