C言語で完全グラフの頂点対のリストの生成器を書いた
はじめに
完全グラフの頂点対のリストを自動生成する方法を、先日から考えているGraphviz用のdotファイルの生成を応用して考えた。
コード
/* Graph Generator */ #include <stdio.h> int main(void) { /* 変数の宣言 */ int i, j, n; FILE *fp; /* 完全グラフのnの入力を促す。 */ printf("Please input n:\n"); scanf("%d", &n); /* ファイルに書き込む。 */ fp = fopen ("data", "w"); /* 頂点の総数、辺の総数を書き込む */ for(i = 1; i <= 2; i++) fprintf(fp, "%d\n", n); /* 頂点の隣接関係をどんどん書き込む */ for(i = 1; i <= n; i++){ for(j = i; j <= n; j++){ if(i != j){ fprintf(fp, "%d %d\n", i, j); } } } fclose(fp); return 0; }
実行結果(生成されたファイル data の中身)
nが5のときの実行結果。
5
5
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5