From aa784eaece4425c6145419ea9d1baa5da51a3cc6 Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Thu, 22 Sep 2022 13:47:34 -0400 Subject: add resizing --- vector.c | 120 --------------------------------------------------------------- 1 file changed, 120 deletions(-) delete mode 100644 vector.c (limited to 'vector.c') diff --git a/vector.c b/vector.c deleted file mode 100644 index 2c8f8d2..0000000 --- a/vector.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include - -vector_t vector_init(int size){ - vector_t vec; - vec.max_size = size; - vec.arr = malloc(sizeof(int)*vec.max_size); - vec.cur_size = 0; - return vec; -} - -int size(vector_t vec){ - return vec.cur_size; -} - -int capacity(vector_t vec){ - return vec.max_size; -} - -int is_empty(vector_t vec){ - if (vec.cur_size == 0){ - return 1; - } - return 0; -} - -int is_full(vector_t vec){ - if (vec.cur_size >= vec.max_size){ - return 1; - } - return 0; -} - -int at(vector_t vec, int index){ - if (index >= vec.max_size){ - printf("Index out of bound!!\n"); - exit(1); - } - - return vec.arr[index]; -} - -void push(vector_t *vec, int value){ - if (is_full(*vec)){ - printf("Array out of Size!!\n\ - Can't push!! \n\ - Not yet implemented resize!!\n"); - exit(1); - } - - vec->arr[vec->cur_size] = value; - vec->cur_size++; -} - -void insert(vector_t *vec, int index, int val){ - if (is_full(*vec)){ - printf("Array out of Size!!\n\ - Can't insert!\n\ - Not yet implemented resize!!\n"); - exit(1); - } - - int tmp; - for (int i = index; i <= vec->cur_size; i++){ - tmp = val; - val = vec->arr[i]; - vec->arr[i] = tmp; - } - vec->cur_size += 1; -} - -void delete(vector_t *vec, int index){ - if (!(index < vec->cur_size)){ - printf("Invalid Index!\nFailed to Delete Element\n"); - exit(-1); - } - int len = vec->cur_size - 1; - - for (int i = index; i < len; i++){ - vec->arr[i] = vec->arr[i+1]; - } - - vec->cur_size = vec->cur_size - 1; -} - -void remove_val(vector_t *vec, int value){ - int i = 0; - while (i < vec->cur_size){ - if (vec->arr[i] == value){ - delete(vec, i); - continue; - } - i++; - } -} - -void prepend(vector_t *vec, int value){ - insert(vec, 0, value); -} - -int pop(vector_t *vec){ - // remove item at the end, return value - int ret = vec->arr[vec->cur_size-1]; - vec->cur_size--; - return ret; -} - -void print_vec(vector_t vec){ - printf("["); - for (int i = 0; i < vec.cur_size; i++){ - printf("%d ", vec.arr[i]); - - } - printf("]\n"); -} - -void destroy_vec(vector_t *vec){ - free(vec->arr); -} - -- cgit v1.2.3