//Insère un élément après le pointeur head. Retourne le pointeur sur l’élément inséré
element*list_insert_after(element*head,intdata){
element*insert=malloc(sizeof(element));
insert->data=data;
if(list_empty(head)){
head=insert;
insert->next=head;
}else{
insert->next=head->next;
head->next=insert;
}
returninsert;
/* element *new_e = malloc(sizeof(element));
new_e->data = data;
if(list_empty(head))
{
head->next=list_create();
head=new_e;
new_e->next = head;
}
else {
element *temp;
if(head->next->next != NULL)
{
temp = head->next->next;
new_e->next = temp;
}
head->next = new_e;
}
element*new_e=head->next;
new_e->next=list_create();
new_e->data=data;
returnnew_e;
return new_e; */
}
//Insère un élément avant le pointeur head. Retourne le pointeur sur l’élément inséré
element*list_insert_before(element*head,intdata){
element*runner=head;
if(list_empty(head))
{
element*new_e=malloc(sizeof(element));
new_e->data=data;
new_e->next=head;
returnhead=new_e;
}
else{
while(runner->next!=head)
{
runner=runner->next;
}
runner->next=list_insert_after(runner,data);
returnrunner;
}
}
//Recherche un élément dans la liste. Retourne un pointeur sur le 1er élément trouvé ou NULL si l’élément est absent
element*list_search(element*head,intdata);
element*list_search(element*head,intdata){
element*runner=head;
while(runner->next!=NULL){
if(runner->data==data)
returnrunner;
runner=runner->next;
}
returnNULL;
}
//Supprime un élément de la liste sans libérer l’élément pointé. Renvoie un pointeur sur le 1er élément trouvé à supprimer et l’enlève de la liste, ou NULL si l’élément est absent