00001 00007 #include "dynlist.h" 00008 #include <stdio.h> 00009 #include <string.h> 00010 00011 #define NUM 30 00012 typedef struct { 00013 int alpha; 00014 char beta[128]; 00015 }data; 00016 00017 int isbigger(void *first, void *second) { 00018 if( ((data*)first)->alpha > ((data*)second)->alpha ) 00019 return 1; 00020 else 00021 return 0; 00022 } 00023 00024 void print_data(dynlist list) { 00025 int i; 00026 data *pdata; 00027 00028 for(i=0; i<getlen(list); ++i) { 00029 pdata=getitem(&list, i); 00030 if(pdata) 00031 printf("(%3d, %10s)\n", pdata->alpha, pdata->beta); 00032 } 00033 } 00034 00035 void print_array(data *array, int len) { 00036 int i; 00037 00038 for(i=0; i<len; ++i) 00039 printf("(%3d, %10s)\n", array[i].alpha, array[i].beta); 00040 } 00041 00042 int main() { 00043 data *temp; 00044 int i; 00045 dynlist(list, data); 00046 00047 temp=newitem(&list); 00048 temp->alpha=25; 00049 sprintf(temp->beta, "Carlo"); 00050 00051 temp=newitem(&list); 00052 temp->alpha=23; 00053 sprintf(temp->beta, "Marco"); 00054 00055 temp=newitem(&list); 00056 temp->alpha=22; 00057 sprintf(temp->beta, "Kristy"); 00058 00059 puts("list: "); 00060 print_data(list); 00061 00062 puts("sorted: "); 00063 sortlist(&list, isbigger); 00064 print_data(list); 00065 00066 clearlist(&list); 00067 return 0; 00068 }