/* joukkokokeilu SJ */ #include /* kokeellinen osa */ #define N 200 #define M 400 #define K 10 int main() { DSET S, S1, S2; int i, s ; DSET_ITERATOR k; INT_DSET_CREATE(S); printf("Joukkoon : "); for (i = 1 ; i <= N ; i++) { s = rand() % M; printf("%d ", s); INT_DSET_INSERT(S, s); } putchar('\n'); printf("Kokeillaan hakua\n"); for (i = 1 ; i <= K ; i++) { s = rand() % M; printf("%d ", s); if (INT_DSET_MEMBER(S, s)) printf(" löytyi\n"); else printf(" ei löytynyt\n"); } putchar('\n'); printf("Kokeillaan läpikäyntiä\n"); s = INT_DSET_ANY(S, k); while (INT_DSET_ITERATING(S, k)) { printf("%d ", s); s = INT_DSET_ANOTHER(S, k); } putchar('\n'); INT_DSET_CREATE(S1); printf("Joukkoon S1: "); for (i = 1 ; i <= N ; i++) { s = rand() % M; printf("%d ", s); INT_DSET_INSERT(S1, s); } putchar('\n'); INT_DSET_CREATE(S2); printf("Joukkoon S2: "); for (i = 1 ; i <= N ; i++) { s = rand() % M; printf("%d ", s); INT_DSET_INSERT(S2, s); } putchar('\n'); DSET_FREE(S); printf("Yhdiste:\n"); S = INT_DSET_UNION(S1, S2); DSET_PRINT(S); putchar('\n'); printf("Poisto\n"); for (i = 1 ; i <= M/2; i++) INT_DSET_DELETE(S, i); DSET_PRINT(S); putchar('\n'); DSET_FREE(S); printf("Leikkaus:\n"); S = INT_DSET_INTERSECTION(S1, S2); DSET_PRINT(S); putchar('\n'); DSET_FREE(S); printf("Erotus:\n"); S = INT_DSET_DIFFERENCE(S1, S2); DSET_PRINT(S); putchar('\n'); DSET_FREE(S); DSET_FREE(S1); DSET_FREE(S2); INT_DSET_CREATE(S1); INT_DSET_CREATE(S2); INT_DSET_INSERT(S1, 1); if (DSET_EQUAL(S1, S2)) printf("Samat"); else printf("Eri"); printf("Equal3"); if (DSET_EQUAL(S2, S1)) printf("Samat"); else printf("Eri"); DSET_FREE(S1); DSET_FREE(S2); exit(0); }