mirror of
https://gitlab.com/klmp200/LO41.git
synced 2024-10-31 22:18:05 +00:00
Fonction contains, j'ai pas testé lol
This commit is contained in:
parent
0d7ebda7e0
commit
d157623135
23
List/List.c
23
List/List.c
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user