/*------------------------------------------------------------------*/ /* testlist.c (Version 1: Fundamentals) */ /*------------------------------------------------------------------*/ #include "list.h" #include #include #include static void pfStringPrint(void **ppvItem, void *pvFormat) { char *pcItem = (char*)*ppvItem; char *pcFormat = (char*)pvFormat; printf(pcFormat, pcItem); } int main(int argc, char *argv[]) { List_T oList; unsigned long ulLength; char **ppcArray; unsigned long ul; /* Test List_new.*/ oList = List_new(); /* Test List_addFirst and List_addLast.*/ List_addFirst(oList, "Ruth"); List_addFirst(oList, "Gehrig"); List_addLast(oList, "Mantle"); List_addLast(oList, "Jeter"); /* Test List_getFirst and List_getLast.*/ printf("-----------------------------------\n"); printf("%s\n", (char*)List_getFirst(oList)); printf("%s\n", (char*)List_getLast(oList)); /* Test List_length and List_toArray. */ printf("-----------------------------------\n"); ulLength = List_length(oList); ppcArray = (char**)calloc(ulLength, sizeof(char*)); List_toArray(oList, (void**)ppcArray); for (ul = 0; ul < ulLength; ++ul) printf("%s\n", ppcArray[ul]); free(ppcArray); /* Test List_map. */ printf("-----------------------------------\n"); List_map(oList, pfStringPrint, "%s\n"); /* Test List_removeFirst and List_removeLast. */ printf("-----------------------------------\n"); List_removeFirst(oList); List_removeLast(oList); List_map(oList, pfStringPrint, "%s\n"); /* Test List_free. */ List_free(oList); return 0; } /* Output: ----------------------------------- Gehrig Jeter ----------------------------------- Gehrig Ruth Mantle Jeter ----------------------------------- Gehrig Ruth Mantle Jeter ----------------------------------- Ruth Mantle */