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 }