1
0
mirror of https://gitlab.com/klmp200/LO41.git synced 2024-11-22 08:43:22 +00:00

Fonction contains, j'ai pas testé lol

This commit is contained in:
Antoine Bartuccio 2018-06-20 17:46:14 +02:00 committed by Aethor
parent 0d7ebda7e0
commit d157623135
2 changed files with 23 additions and 1 deletions

View File

@ -140,6 +140,26 @@ void insert_inside_List(THIS(List), void * data, size_t data_size, int index){
} }
/**
* Check if data_to_find exist in list
* @param this THIS(List)
* @param data_to_find pointer to data you want to find inside
* @param compare a compare function, return true or false and takes two void * pointers
* @return true or false if the element is within the list or not
*/
int contains_List(THIS(List), void * data_to_find, int (*compare)(void *, void *)){
Element * current = this->head;
while (current != NULL){
if (compare(data_to_find, current->data)){
return 1;
}
current = current->next;
}
return 0;
}
void remove_head_List(THIS(List)){ void remove_head_List(THIS(List)){
DELETE(this->head); DELETE(this->head);
} }
@ -170,7 +190,8 @@ List *_init_List(){
clear_custom, clear_custom,
clear, clear,
remove_head, remove_head,
remove_tail remove_tail,
contains
) )
return l; return l;
} }

View File

@ -29,6 +29,7 @@ struct o_List {
PUBLIC void* (*get_element_data)(_THIS(List), int index); PUBLIC void* (*get_element_data)(_THIS(List), int index);
PUBLIC int (*get_size)(_THIS(List)); PUBLIC int (*get_size)(_THIS(List));
PUBLIC int (*contains)(_THIS(List), void * data_to_find, int (*compare)(void *, void *));
PUBLIC void (*set_custom_free)(_THIS(List), void (*custom_free)(void *)); PUBLIC void (*set_custom_free)(_THIS(List), void (*custom_free)(void *));
PUBLIC void (*insert_inside)(_THIS(List), void * data, size_t data_size, int index); PUBLIC void (*insert_inside)(_THIS(List), void * data, size_t data_size, int index);