#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
#include "clist.h"
link_t* head_next = NULL;
link_t* head_ret = NULL;
- if (index == 0) {
+ if (head == NULL) {
+ return NULL;
+ } else if (index == 0) {
head_next = head->next;
free(head);
head = head_next;
}
}
+link_t* list_concat(link_t* first, link_t* second) {
+ link_t* head_first = first;
+
+ while (first->next != NULL) {
+ first = first->next;
+ }
+ first->next = second;
+ return head_first;
+}
+
+link_t* list_sort(link_t* head) {
+ int tmp;
+ bool isswaped;
+ link_t* head_first = head;
+
+ do {
+ isswaped = false;
+ while (head->next != NULL) {
+ if (head->value > head->next->value) {
+ tmp = head->value;
+ head->value = head->next->value;
+ head->next->value = tmp;
+ isswaped = true;
+ }
+ head = head->next;
+ }
+ /* Reloop at the beginning of the list until there's is values swaped */
+ head = head_first;
+ } while (isswaped);
+ return head_first;
+}
+
unsigned list_count(link_t* head) {
int count = 0;
head = next_link;
}
}
+
+void list_display_values(link_t* head) {
+ int i = 0;
+
+ printf("------Begin------\n");
+ while (head != NULL) {
+ printf("value at [%d]=%d\n", i, head->value);
+ head = head->next;
+ i++;
+ }
+ printf("------End------\n");
+}