From 646178db8e0160ffe6b01f809dde77892179b774 Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Tue, 20 Sep 2022 16:02:00 -0400 Subject: implemented insert --- main.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 227d1e6..3e2a172 100644 --- a/main.c +++ b/main.c @@ -31,6 +31,13 @@ int is_empty(vector_t vec){ 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"); @@ -41,8 +48,10 @@ int at(vector_t vec, int index){ } void push(vector_t *vec, int value){ - if (value >= vec->max_size){ - printf("Array out of Size!! Not yet implemented resize!!\n"); + if (is_full(*vec)){ + printf("Array out of Size!!\n\ + Can't push!! \n\ + Not yet implemented resize!!\n"); exit(1); } @@ -50,8 +59,34 @@ void push(vector_t *vec, int value){ vec->cur_size++; } -void insert(vector_t *vec, int index, int item){ +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 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); } int main(void){ @@ -62,12 +97,29 @@ int main(void){ printf("is_empty returns: %d.\n", is_empty(vec)); push(&vec, 10); + push(&vec, 20); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + push(&vec, 30); + printf("-----\n"); printf("The size of the vector is %d.\n", size(vec)); printf("The first element of the vector is %d.\n", at(vec, 0)); printf("is_empty returns: %d.\n", is_empty(vec)); + print_vec(vec); - + destroy_vec(&vec); return 0; } -- cgit v1.2.3