functions.
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
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;
link_t* list_new(int value);
link_t* list_append(link_t* head, int value);
link_t* list_prepend(link_t* head, int value);
+link_t* list_insert(link_t* head, unsigned index, int value);
+link_t* list_delete(link_t* head, unsigned index);
unsigned list_count(link_t* head);
void list_set(link_t* head, unsigned index, int value);
int list_get(link_t* head, unsigned index);
printf("Valeur a index %d: %d\n", 4, list_get(head, 4));
list_set(head, 0, 78);
printf("Valeur a index %d: %d\n", 0, list_get(head, 0));
+ printf("Valeur a index %d: %d\n", 1, list_get(head, 1));
+ printf("Valeur a index %d: %d\n", 2, list_get(head, 2));
+ head = list_insert(head, 2, 7);
+ printf("Valeur a index %d: %d\n", 1, list_get(head, 1));
+ printf("Valeur a index %d: %d\n", 2, list_get(head, 2));
+ printf("Valeur a index %d: %d\n", 3, list_get(head, 3));
+ //head = list_delete(head, 2);
+ printf("Valeur a index %d: %d\n", 2, list_get(head, 2));
+ printf("Valeur a index %d: %d\n", 3, list_get(head, 3));
+ printf("Valeur a index %d: %d\n", 4, list_get(head, 4));
list_clear(head);
return 0;