X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP_9%2Fexo2%2Fclist.c;fp=TP_9%2Fexo2%2Fclist.c;h=0aa9e37da73e1271d043a5a82796f75742999754;hb=0d650b413a907f0fd4e78ee1500c196e9fd41d9f;hp=0ee532f36b283d0a8795cf2b10348bf066acfb15;hpb=65fea8ba6315175c0c80e652d59f02cf91e294c5;p=TD_C.git diff --git a/TP_9/exo2/clist.c b/TP_9/exo2/clist.c index 0ee532f..0aa9e37 100644 --- a/TP_9/exo2/clist.c +++ b/TP_9/exo2/clist.c @@ -31,6 +31,47 @@ link_t* list_prepend(link_t* head, int value) { return first_link; } +link_t* list_insert(link_t* head, unsigned index, int value) { + link_t* link_insrt = list_new(value); + link_t* head_first = head; + //link_t* head_prev = NULL; + link_t* head_next = NULL; + + for (unsigned i = 0; i < index; i++) { + head = head->next; + } + //head_prev = head; + head->next = link_insrt; + head_next = head->next; + head = link_insrt; + head->next = head_next; + return head_first; +} + +link_t* list_delete(link_t* head, unsigned index) { + link_t* head_first = head; + link_t* head_prev = NULL; + link_t* head_next = NULL; + + if (index == 0) { + head_next = head->next; + free(head); + head = head_next; + return head; + } else { + for (unsigned i = 0; i < index-1; i++) { + head = head->next; + } + head_prev = head; + head = head->next; + head_next = head->next; + free(head); + head = head_prev; + head->next = head_next; + return head_first; + } +} + unsigned list_count(link_t* head) { int count = 0;