#include #include #define MAX_POINTS 100 void main(int argc, char *argv[]) { int i, j, k, numPoints, connections; int graph[MAX_POINTS][MAX_POINTS]; if (argc != 3) { printf("usage: gengraph numPoints connections[1..numPoints]\n"); exit(1); } srand((unsigned)time(NULL)); numPoints = atoi(argv[1]); connections = atoi(argv[2]); for (i = 0; i < numPoints; i++) for (j = 0; j < numPoints; j++) graph[i][j] = 0; for (i = 0; i < numPoints - 1; i++) /* connect it in circle */ graph[i][i + 1] = 1; graph[0][numPoints - 1] = 1; for (i = 0; i < numPoints; i++) /* add extra edges */ { k = rand() % connections; for (j = 0; j < k; j++) { int l; l = rand() % numPoints; graph[i][l] = 1; } } printf("%d\n", numPoints); for (i = 0; i < numPoints; i++) for (j = 0; j < numPoints; j++) if (graph[i][j]) printf("%d %d %d\n", i + 1, j + 1, graph[i][j]); }