/* Tietorakenteet ja algoritmit 1999 Esimerkki 2-5 : Alkion useampien esiintymien poistaminen listasta 9.9.1999 MM */ #include "TRA.h" #include void purge (LIST L) { LIST_POSITION p, q, r; p = LIST_FIRST(L); while (p != LIST_EOL(L)) { q = LIST_NEXT(L, p); while (q != LIST_EOL(L)) { if (LIST_SAME(L, LIST_RETRIEVE(L, p), LIST_RETRIEVE(L, q))) { r = q; q = LIST_NEXT(L, q); LIST_DELETE(L, r); } else q = LIST_NEXT(L, q); } p = LIST_NEXT(L, p); } } void main() { LIST L; INT_LIST_CREATE(L); LIST_CONSTRUCT_RANDOM(L, 20, 1, 10); LIST_PRINT(L); putchar('\n'); purge(L); LIST_PRINT(L); putchar('\n'); }