/* Esimerkki L3. 14.5.1999 Matti Meriläinen Uuden samantyyppisen listan luominen tietämättä saatavan listan tyyppiä, listasta elementin hakeminen ja listan läpikäyminen. Ohjelma luo kokonaislukulistan L jossa on 10 alkiota, ja kopioi sen alkiot listaan M. Kopioinnin hoitaa aliohjelma Kopio, joka saa parametrinaan listan L ja palauttaa uuden listan, joka on kopio L:stä. Toimii yksinkertaisilla tyypeillä. */ #include "TRA.h" LIST Kopio (LIST L) { LIST M; LIST_POSITION p; LIST_CREATE(M, LIST_TYPE(L)); p = LIST_FIRST(L); while (p) { LIST_INSERT(M, LIST_EOL(M), LIST_RETRIEVE(L, p)); p = LIST_NEXT(L, p); } return M; } int main() { LIST L, M; IL_CREATE(L); LIST_CONSTRUCT_RANDOM(L, 10, 1, 10); M = Kopio(L); LIST_PRINT(L); putchar('\n'); LIST_PRINT(M); LIST_FREE(L); LIST_FREE(M); return 0; }