#include #include #include #include "int_list.h" void int_list_init(int_list *l) { l->data = NULL; l->size = 0; l->count = 0; } int int_list_count(int_list *l) { return l->count; } void int_list_add(int_list *l, int value) { if (l->size == 0) { l->size = 10; l->data = malloc(sizeof(int*) * l->size); memset(l->data, '\0', sizeof(int*) * l->size); } if (l->size == l->count) { l->size *= 2; l->data = realloc(l->data, sizeof(int*) * l->size); } l->data[l->count] = value; l->count++; } int int_list_get(int_list *l, int index) { if (index >= l->count) { printf("error: index out of range"); return 0; } return l->data[index]; } void int_list_set(int_list *l, int index, int value) { if (index >= l->count) { printf("error: index out of range"); return; } l->data[index] = value; } void int_list_delete(int_list *l, int index) { if (index >= l->count) { printf("error: index out of range"); return; } int j = index; for (int i = index; i < l->count; i++) { l->data[j] = l->data[i]; j++; } l->count--; } int int_list_sum(int_list *l) { int sum = 0; for (int i = 0; i < l->count; i++) { sum += (l->data[i]); } return sum; } void int_list_print(int_list *l) { for (int i = 0; i < l->count; i++) { printf("%d ", (l->data[i])); } printf("\n"); } void int_list_free(int_list *l) { free(l->data); }