From 29db4e615e4bfdf6ec107e5cdd1547403eb2a6e4 Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Thu, 22 Sep 2022 09:39:20 -0400 Subject: change to static library --- main.c | 127 ++--------------------------------------------------------------- 1 file changed, 2 insertions(+), 125 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index ab99fb3..0c0b282 100644 --- a/main.c +++ b/main.c @@ -1,129 +1,6 @@ #include #include - - -typedef struct { - int *arr; - int max_size; - int cur_size; -} vector_t; - -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); -} +#include "vector.h" int main(void){ vector_t vec = vector_init(16); @@ -146,7 +23,7 @@ int main(void){ remove_val(&vec, 5); /* for (int i = 0; i < vec.max_size; i++){ */ /* printf("pop: %d\n", pop(&vec)); */ - /* delete(&vec, 0); */ + /* delete_vec(&vec, 0); */ /* } */ printf("The size of the vector is %d.\n", size(vec)); -- cgit v1.2.3