/*------------------------------------------------------------------*/ /* testlist.c (Version 1: Fundamentals) */ /*------------------------------------------------------------------*/ #include "list.h" #include #include /*------------------------------------------------------------------*/ static void printString(void **ppvItem, void *pvFormat) /* Print string *ppvItem using format pvFormat. */ { char *pcItem = (char*)*ppvItem; char *pcFormat = (char*)pvFormat; printf(pcFormat, pcItem); } /*------------------------------------------------------------------*/ int main(int argc, char *argv[]) /* Test the List_T ADT. */ { List_T oList; int iLength; char **ppcArray; int i; /* 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_getLength. */ printf("-----------------------------------------------------\n"); iLength = List_getLength(oList); printf("List length: %d\n", iLength); /* Test List_getFirst and List_getLast. */ printf("-----------------------------------------------------\n"); printf("%s\n", (char*)List_getFirst(oList)); printf("%s\n", (char*)List_getLast(oList)); /* Test List_toArray. */ printf("-----------------------------------------------------\n"); iLength = List_getLength(oList); ppcArray = (char**)calloc(iLength, sizeof(char*)); List_toArray(oList, (void**)ppcArray); for (i = 0; i < iLength; ++i) printf("%s\n", ppcArray[i]); free(ppcArray); /* Test List_map. */ printf("-----------------------------------------------------\n"); List_map(oList, printString, "%s\n"); /* Test List_removeFirst and List_removeLast. */ printf("-----------------------------------------------------\n"); List_removeFirst(oList); List_removeLast(oList); List_map(oList, printString, "%s\n"); /* Test List_free. */ List_free(oList); return 0; }