Skip to content

Commit

Permalink
add graph_adjlist
Browse files Browse the repository at this point in the history
  • Loading branch information
weijieblog committed Jun 2, 2016
1 parent 994b42f commit e97fd92
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion graph/graph.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
int graph_insert_edge(Graph *graph, const void *data1, const void *data2);
int graph_remove_vertex(Graph *graph, void **data);
int graph_remove_edge(Graph *graph, void *data1, void **data2);
int graph_adjlist(Graph *graph, const void *data, AdjList *adjlist);
int graph_adjlist(Graph *graph, const void *data, AdjList **adjlist);
int graph_is_adjacent(const Graph *graph, const void *data1, const void *data2);

#define graph_adjlists(graph)((graph)->adjlists)
Expand Down
13 changes: 13 additions & 0 deletions graph/graph_adjlist.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "graph.h"

int graph_adjlist(Graph *graph, const void *data, AdjList **adjlist) {
ListElm *element;
for (element = list_head(&graph->adjlists); element != NULL; element = list_next(element)) {
if (graph->match(data, ((AdjList *)list_data(element))->vertex))
break;
}
if (element == NULL)
return -1;
*adjlist = list_data(element);
return 0;
}
4 changes: 4 additions & 0 deletions graph/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ int main (int argc, char **argv) {
int testData3 = 2;
void *testPtr1;
void *testPtr2;
AdjList *testAdjlist1;

graph_init(testGraph1, _match, NULL);
printf("'graph_init' is pass ? %d \n", testGraph1->vcount == 0 &&
Expand Down Expand Up @@ -51,6 +52,9 @@ int main (int argc, char **argv) {
*(int *)testPtr2 == 1);


graph_adjlist(testGraph1, testPtr1, &testAdjlist1);
printf("'graph_adjlist' is pass ? %d \n", *(int *)testAdjlist1->vertex == 0);


graph_destory(testGraph1);
printf("'graph_destory' is pass ? %d \n", testGraph1->vcount == 0 &&
Expand Down
3 changes: 2 additions & 1 deletion graph/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ graphObjects = main.o \
graph_insert_edge.o \
graph_remove_vertex.o \
graph_remove_edge.o \
graph_is_adjacent.o
graph_is_adjacent.o \
graph_adjlist.o

objects = $(listsObjects) $(setObjects) $(graphObjects)

Expand Down

0 comments on commit e97fd92

Please sign in to comment.