1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include <igraph.h>
int main(void) {
igraph_t graph;
igraph_vector_int_t result;
igraph_vector_t result_real;
igraph_int_t edges_array[] = {
0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8,
0,10, 0,11, 0,12, 0,13, 0,17, 0,19, 0,21, 0,31,
1, 2, 1, 3, 1, 7, 1,13, 1,17, 1,19, 1,21, 1,30,
2, 3, 2, 7, 2,27, 2,28, 2,32, 2, 9, 2, 8, 2,13,
3, 7, 3,12, 3,13, 4, 6, 4,10, 5, 6, 5,10, 5,16,
6,16, 8,30, 8,32, 8,33, 9,33, 13,33, 14,32, 14,33,
15,32, 15,33, 18,32, 18,33, 19,33, 20,32, 20,33,
22,32, 22,33, 23,25, 23,27, 23,32, 23,33, 23,29,
24,25, 24,27, 24,31, 25,31, 26,29, 26,33, 27,33,
28,31, 28,33, 29,32, 29,33, 30,32, 30,33, 31,32,
31,33, 32,33
};
igraph_vector_int_t edges =
igraph_vector_int_view(edges_array, sizeof(edges_array) / sizeof(edges_array[0]));
/* Initialize the library. */
igraph_setup();
igraph_create(&graph, &edges, 0, IGRAPH_UNDIRECTED);
igraph_vector_int_init(&result, 0);
igraph_vector_init(&result_real, 0);
igraph_degree(&graph, &result, igraph_vss_all(), IGRAPH_ALL, IGRAPH_LOOPS);
printf("Maximum degree is %10" IGRAPH_PRId ", vertex %2" IGRAPH_PRId ".\n",
igraph_vector_int_max(&result),
igraph_vector_int_which_max(&result));
igraph_closeness(&graph, &result_real, NULL, NULL, igraph_vss_all(),
IGRAPH_ALL, /* weights= */ NULL, /* normalized= */ false);
printf("Maximum closeness is %10g, vertex %2" IGRAPH_PRId ".\n",
(double) igraph_vector_max(&result_real),
igraph_vector_which_max(&result_real));
igraph_betweenness(&graph, /* weights= */ NULL, &result_real, igraph_vss_all(),
IGRAPH_UNDIRECTED, /* normalized= */ false);
printf("Maximum betweenness is %10g, vertex %2" IGRAPH_PRId ".\n",
(double) igraph_vector_max(&result_real),
igraph_vector_which_max(&result_real));
igraph_vector_int_destroy(&result);
igraph_vector_destroy(&result_real);
igraph_destroy(&graph);
return 0;
}
|