0
CのiGraphライブラリを使用してグラフ内の最大次数のランダムに選択された頂点を削除したいと思います。ここに私のコードだ:CのiGraphグラフの最大次数の頂点を削除
#include <stdio.h>
#include <igraph/igraph.h>
int main() {
float dens = .12;
int nbr_nodes = 100;
igraph_integer_t mdeg;
igraph_vector_t degree;
igraph_t g;
igraph_rng_seed(igraph_rng_default(), 400);
igraph_erdos_renyi_game(&g, IGRAPH_ERDOS_RENYI_GNP, nbr_nodes, dens,IGRAPH_UNDIRECTED, IGRAPH_NO_LOOPS);
igraph_vector_init(°ree,0);
igraph_degree(&g, °ree, igraph_vss_all(), IGRAPH_ALL, IGRAPH_NO_LOOPS);
igraph_maxdegree(&g, &mdeg, igraph_vss_all(), IGRAPH_ALL, IGRAPH_NO_LOOPS);
igraph_delete_vertices(&g, ???);
return 0;
}
私は最大の学位を見つけることができます:
igraph_maxdegree(&g, &mdeg, igraph_vss_all(), IGRAPH_ALL, IGRAPH_NO_LOOPS);
しかし、私は最高度の頂点の1つに対応するIDを見つけるするかどうかはわかりません。
要するに、私は何の代わりに何を入れるべきか分からないin:
igraph_delete_vertices(&g, ???);
ありがとうございました!どんな手がかりもありがとう!
これは素晴らしいです!私は私の質問ではっきりしていたはずです。私は実際には、ランダムに選択された最高度の頂点のうちの1つだけを削除する必要があります(または順序付けられた度数ベクトルの最初のもの)... – Rodolphe