Задача: Я хочу сделать взвешенный неориентированный граф из матрицы смежности, хранящейся в файле .csv
, используя igraph, а затем выполнить минимальное остовное дерево и некоторые другие алгоритмы на нем ,Создание взвешенного неориентированного графа в «igraph» в C/C++
Я начал с создания ориентированного графа с 10 вершинами и 5 ребрами. По умолчанию igraph не допускает веса для ребер, и вы должны использовать некоторые атрибуты, которые не имеют для меня смысла (что-то вроде igraph_i_set_attribute_table
) в документации.
Может кто-то, пожалуйста, помогите мне в этом.
void print_vector(igraph_vector_t *v, FILE *f) {
long int i;
for (i=0; i<igraph_vector_size(v); i++) {
fprintf(f, " %li", (long int) VECTOR(*v)[i]);
}
fprintf(f, "\n");
}
int main(int argc, char* argv[])
{
igraph_t g;
igraph_vector_t v;
int ret;
igraph_es_t es;
/* Initialize the vector for edges */
igraph_vector_init(&v,10);
VECTOR(v)[0]=0;VECTOR(v)[1]=1;
VECTOR(v)[2]=1;VECTOR(v)[3]=3;
VECTOR(v)[4]=1;VECTOR(v)[5]=5;
VECTOR(v)[6]=2;VECTOR(v)[7]=3;
VECTOR(v)[8]=2;VECTOR(v)[9]=5;
igraph_create(&g,&v,0,IGRAPH_DIRECTED);
print_vector(&v,stdout);
/* igraph_i_set_attribute_table(&igraph_cattribute_table); */
igraph_vector_destroy(&v);
igraph_destroy(&g);
return 0;
}
Это было очень полезно @Gabor. Большое спасибо. – NightFox