diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-10-11 22:19:00 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-10-11 22:19:00 +0200 |
| commit | 73c2b00a10c5786ddeeacc915e233fd4df1c9321 (patch) | |
| tree | e299ea4e8ac161b2b21170172ff8f182c1c3fe1a /rushs/evalexpr/vector/vector.c | |
| parent | c9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (diff) | |
fix: evalexpr & tinyprintf contenaient toute la piscine
Diffstat (limited to 'rushs/evalexpr/vector/vector.c')
| -rw-r--r-- | rushs/evalexpr/vector/vector.c | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/rushs/evalexpr/vector/vector.c b/rushs/evalexpr/vector/vector.c deleted file mode 100644 index cbd19aa..0000000 --- a/rushs/evalexpr/vector/vector.c +++ /dev/null @@ -1,152 +0,0 @@ -#include "vector.h" - -#include <stdio.h> -#include <stdlib.h> - -struct vector *vector_init(size_t n) -{ - struct vector *res = malloc(sizeof(struct vector)); - if (res == NULL) - { - return NULL; - } - - res->size = 0; - res->capacity = n; - res->data = malloc(n * sizeof(int)); - if (res->data == NULL) - { - return NULL; - } - return res; -} - -void vector_destroy(struct vector *v) -{ - if (v) - { - free(v->data); - free(v); - } -} - -struct vector *vector_resize(struct vector *v, size_t n) -{ - if (!v) - { - return NULL; - } - if (n == v->capacity) - { - return v; - } - if (v) - { - int *tmp = realloc(v->data, n * sizeof(int)); - if (tmp == NULL) - { - return NULL; - } - v->data = tmp; - - if (n < v->size) - { - v->size = n; - } - v->capacity = n; - return v; - } - return NULL; -} - -struct vector *vector_append(struct vector *v, int elt) -{ - if (v == NULL) - { - return NULL; - } - - if (v->size == v->capacity) - { - if (vector_resize(v, v->capacity * 2) == NULL) - { - return NULL; - } - } - v->data[v->size] = elt; - v->size++; - return v; -} - -void vector_print(const struct vector *v) -{ - if (v == NULL || v->size == 0) - { - printf("\n"); - return; - } - for (size_t i = 0; i < v->size - 1; i++) - { - printf("%d,", v->data[i]); - } - printf("%d\n", v->data[v->size - 1]); -} - -struct vector *vector_reset(struct vector *v, size_t n) -{ - if (vector_resize(v, n) == NULL) - { - return NULL; - } - - v->size = 0; - return v; -} - -struct vector *vector_insert(struct vector *v, size_t i, int elt) -{ - if (v == NULL || i > v->size) - return NULL; - if (i == v->size) - { - return vector_append(v, elt); - } - if (v->size == v->capacity) - { - if (vector_resize(v, v->capacity * 2) == NULL) - { - return NULL; - } - } - for (size_t j = v->size; j > i; j--) - { - v->data[j] = v->data[j - 1]; - } - v->size++; - - v->data[i] = elt; - return v; -} - -struct vector *vector_remove(struct vector *v, size_t i) -{ - if (v == NULL || v->size == 0 || i >= v->size) - { - return NULL; - } - for (size_t j = i; j < v->size - 1; j++) - { - v->data[j] = v->data[j + 1]; - } - - v->size--; - - if (v->size < v->capacity / 2) - { - if (vector_resize(v, v->capacity / 2) == NULL) - { - return NULL; - } - } - return v; -} |
