/* listojen vertailu */ #include "TRA.h" int vertaa_listoja (LIST L1, LIST L2) { LIST_POSITION p1, p2; p1 = LIST_FIRST(L1); p2 = LIST_FIRST(L2); while ((p1 != LIST_EOL(L1)) && (p2 != LIST_EOL(L2))) { if (! LIST_SAME(L1, LIST_RETRIEVE(L1, p1), LIST_RETRIEVE(L2, p2)) ) return 0; p1 = LIST_NEXT(L1, p1); p2 = LIST_NEXT(L2, p2); } /* while */ if (! (p1 == LIST_EOL(L1)) && (p2 == LIST_EOL(L2)) ) return 0; return 1; } /* vertaa_listoja */ /* pääohjelma */ int main() { LIST oma, oma2; LIST_POSITION p; INT_LIST_CREATE(oma); INT_LIST_CREATE(oma2); LIST_CONSTRUCT_RANDOM(oma, 10, 1, 5); LIST_PRINT(oma); printf("\n"); p = LIST_FIRST(oma); while (p != LIST_EOL(oma)) { LIST_INSERT(oma2, LIST_EOL(oma2), LIST_RETRIEVE(oma, p)); p = LIST_NEXT(oma, p); } LIST_PRINT(oma2); printf("\n"); if (vertaa_listoja(oma, oma2)) printf("samat!\n"); else printf("eri\n"); LIST_DELETE(oma2, LIST_FIRST(oma2)); LIST_PRINT(oma2); printf("\n"); if (vertaa_listoja(oma, oma2)) printf("samat!\n"); else printf("eri\n"); LIST_FREE(oma); LIST_FREE(oma2); exit(0); }