#include #include #include #include #include "disjoint.h" main() { DisjointSet *dj; int i; dj = new_disjoint_set(10); for (i = 0; i < 10; i++) { disjoint_makeset(dj, i); } for (i = 0; i < 10; i++) { printf("Find(%d) is %d\n", i, disjoint_find(dj, i)); } printf("\n"); for (i = 8; i > 0; i -= 2) { disjoint_union(dj, disjoint_find(dj, i), disjoint_find(dj, i-2)); } for (i = 0; i < 10; i++) { printf("Find(%d) is %d of size %d\n", i, disjoint_find(dj, i), dj->sizes[disjoint_find(dj, i)]); } }