aboutsummaryrefslogtreecommitdiff
path: root/libvector.c
diff options
context:
space:
mode:
Diffstat (limited to 'libvector.c')
-rw-r--r--libvector.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libvector.c b/libvector.c
index 29abc9d..04461b8 100644
--- a/libvector.c
+++ b/libvector.c
@@ -10,6 +10,7 @@ vector_t vector_init(int size){
10 return vec; 10 return vec;
11} 11}
12 12
13
13int size(vector_t vec){ 14int size(vector_t vec){
14 return vec.cur_size; 15 return vec.cur_size;
15} 16}
@@ -25,11 +26,15 @@ int is_empty(vector_t vec){
25 return 0; 26 return 0;
26} 27}
27 28
28int at(vector_t vec, int index){ 29void check_valid_index(vector_t vec, int index){
29 if (index >= size(vec) || index < 0){ 30 if (index > size(vec) || index < 0){
30 printf("Index out of bound!!\n"); 31 printf("Index out of bound!!\n");
31 exit(-1); 32 exit(-1);
32 } 33 }
34}
35
36int at(vector_t vec, int index){
37 check_valid_index(vec, index);
33 38
34 return vec.arr[index]; 39 return vec.arr[index];
35} 40}
@@ -40,7 +45,9 @@ void push(vector_t *vec, int value){
40 vec->cur_size++; 45 vec->cur_size++;
41} 46}
42 47
48
43void insert(vector_t *vec, int index, int val){ 49void insert(vector_t *vec, int index, int val){
50 check_valid_index(*vec, index);
44 resize_vec_check(vec); 51 resize_vec_check(vec);
45 52
46 int tmp; 53 int tmp;
@@ -53,10 +60,7 @@ void insert(vector_t *vec, int index, int val){
53} 60}
54 61
55void delete_vec(vector_t *vec, int index){ 62void delete_vec(vector_t *vec, int index){
56 if (!(index < vec->cur_size)){ 63 check_valid_index(*vec, index);
57 printf("Invalid Index!\nFailed to Delete Element\n");
58 exit(-1);
59 }
60 int len = vec->cur_size - 1; 64 int len = vec->cur_size - 1;
61 65
62 for (int i = index; i < len; i++){ 66 for (int i = index; i < len; i++){