Example #1
0
void hash_del(hash_table *table,uint64_t key){
	lnodeptr node = hash_find_node(table,key);
	if(node != NULL){
		linklist_remove(node);
		if(node->data!=NULL)
		{
			free(node->data);
		}
		node->data=NULL;
		lnode_free(node);
	}
	return;
}
Example #2
0
static lnodeptr  hash_find_node(hash_table *table,uint64_t key){
	linklist *l = get_linklist(table,key);
	hash_node *hnode =NULL;
	lnodeptr node = linklist_first(l);
	while(node){
		hnode = (hash_node *)node->data;
		if(hnode->key == key){
			hnode->access_time = time(NULL);
			/* put the lastest item to the head of the link list */
			(void)linklist_remove(node);
			linklist_push(l,node);
			return node;
		}
		node = linklist_get_next(l,node);
	}
	return NULL;
}
Example #3
0
int main(int argc, const char *argv[])
{
	Linklist *testList = NULL;
	int i;
	srand(time(0));
	printf("list length is %d\n",linklist_length(testList));
	for(i = 0; i < 10 ; i++){
		/* node->value = rand()%100+1; */
		linklist_insert(&testList, i,0);
	}
	printf("list length is %d\n",linklist_length(testList));
	linklist_print(testList);
	linklist_remove(&testList, 9);
	printf("list length is %d\n",linklist_length(testList));
	linklist_print(testList);
	linklist_destroy(&testList);
	linklist_print(testList);
	return 0;
}