7 u_int
djb_hash(const void *key
)
12 for (i
= 0; i
< strlen((char*)key
); i
++)
13 hash
= ((hash
<< 5) + hash
) + ((char*)key
)[i
];
15 return (hash
& 0x7FFFFFFF);
18 int mycmp(const void *arg1
, const void *arg2
)
20 return (strcmp((char *) arg1
, (char *) arg2
));
23 void myprintf(const void *key
, const void *data
)
25 printf("%s(%s) ", (char *)key
, (char *)data
);
32 /* Initialize table */
33 htable_init(&htable
, 2<<5);
35 /* Setup callback functions */
36 htable
.ht_hashf
= djb_hash
;
37 htable
.ht_cmpf
= mycmp
;
38 htable
.ht_printf
= myprintf
;
40 htable_insert(&htable
, "stathis", "stathis");
41 htable_insert(&htable
, "maria", "maria");
42 htable_insert(&htable
, "kostas", "kostas");
43 htable_insert(&htable
, "panagiotopoulos", "panagiotopoulos");
44 htable_insert(&htable
, "eleni", "eleni");
45 htable_print(&htable
);
47 htable_remove(&htable
, "maria");
48 htable_print(&htable
);