diff options
| author | leiyu3 <s444814187@gmail.com> | 2022-09-20 16:02:00 -0400 |
|---|---|---|
| committer | leiyu3 <s444814187@gmail.com> | 2022-09-20 16:02:00 -0400 |
| commit | 646178db8e0160ffe6b01f809dde77892179b774 (patch) | |
| tree | ee0c0396b995be3c3bf67ad1d4e4045ff8d407b7 | |
| parent | 3c4db645d0188968f4dbe0317d63c7d638f47d03 (diff) | |
| download | vector_c-646178db8e0160ffe6b01f809dde77892179b774.tar.gz vector_c-646178db8e0160ffe6b01f809dde77892179b774.zip | |
implemented insert
| -rw-r--r-- | main.c | 60 |
1 files changed, 56 insertions, 4 deletions
| @@ -31,6 +31,13 @@ int is_empty(vector_t vec){ | |||
| 31 | return 0; | 31 | return 0; |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | int is_full(vector_t vec){ | ||
| 35 | if (vec.cur_size >= vec.max_size){ | ||
| 36 | return 1; | ||
| 37 | } | ||
| 38 | return 0; | ||
| 39 | } | ||
| 40 | |||
| 34 | int at(vector_t vec, int index){ | 41 | int at(vector_t vec, int index){ |
| 35 | if (index >= vec.max_size){ | 42 | if (index >= vec.max_size){ |
| 36 | printf("Index out of bound!!\n"); | 43 | printf("Index out of bound!!\n"); |
| @@ -41,8 +48,10 @@ int at(vector_t vec, int index){ | |||
| 41 | } | 48 | } |
| 42 | 49 | ||
| 43 | void push(vector_t *vec, int value){ | 50 | void push(vector_t *vec, int value){ |
| 44 | if (value >= vec->max_size){ | 51 | if (is_full(*vec)){ |
| 45 | printf("Array out of Size!! Not yet implemented resize!!\n"); | 52 | printf("Array out of Size!!\n\ |
| 53 | Can't push!! \n\ | ||
| 54 | Not yet implemented resize!!\n"); | ||
| 46 | exit(1); | 55 | exit(1); |
| 47 | } | 56 | } |
| 48 | 57 | ||
| @@ -50,8 +59,34 @@ void push(vector_t *vec, int value){ | |||
| 50 | vec->cur_size++; | 59 | vec->cur_size++; |
| 51 | } | 60 | } |
| 52 | 61 | ||
| 53 | void insert(vector_t *vec, int index, int item){ | 62 | void insert(vector_t *vec, int index, int val){ |
| 63 | if (is_full(*vec)){ | ||
| 64 | printf("Array out of Size!!\n\ | ||
| 65 | Can't insert!\n\ | ||
| 66 | Not yet implemented resize!!\n"); | ||
| 67 | exit(1); | ||
| 68 | } | ||
| 69 | |||
| 70 | int tmp; | ||
| 71 | for (int i = index; i <= vec->cur_size; i++){ | ||
| 72 | tmp = val; | ||
| 73 | val = vec->arr[i]; | ||
| 74 | vec->arr[i] = tmp; | ||
| 75 | } | ||
| 76 | vec->cur_size += 1; | ||
| 77 | } | ||
| 78 | |||
| 79 | void print_vec(vector_t vec){ | ||
| 80 | printf("["); | ||
| 81 | for (int i = 0; i < vec.cur_size; i++){ | ||
| 82 | printf("%d ", vec.arr[i]); | ||
| 83 | |||
| 84 | } | ||
| 85 | printf("]\n"); | ||
| 86 | } | ||
| 54 | 87 | ||
| 88 | void destroy_vec(vector_t *vec){ | ||
| 89 | free(vec->arr); | ||
| 55 | } | 90 | } |
| 56 | 91 | ||
| 57 | int main(void){ | 92 | int main(void){ |
| @@ -62,12 +97,29 @@ int main(void){ | |||
| 62 | printf("is_empty returns: %d.\n", is_empty(vec)); | 97 | printf("is_empty returns: %d.\n", is_empty(vec)); |
| 63 | 98 | ||
| 64 | push(&vec, 10); | 99 | push(&vec, 10); |
| 100 | push(&vec, 20); | ||
| 101 | push(&vec, 30); | ||
| 102 | push(&vec, 30); | ||
| 103 | push(&vec, 30); | ||
| 104 | push(&vec, 30); | ||
| 105 | push(&vec, 30); | ||
| 106 | push(&vec, 30); | ||
| 107 | push(&vec, 30); | ||
| 108 | push(&vec, 30); | ||
| 109 | push(&vec, 30); | ||
| 110 | push(&vec, 30); | ||
| 111 | push(&vec, 30); | ||
| 112 | push(&vec, 30); | ||
| 113 | push(&vec, 30); | ||
| 114 | push(&vec, 30); | ||
| 115 | |||
| 65 | printf("-----\n"); | 116 | printf("-----\n"); |
| 66 | 117 | ||
| 67 | printf("The size of the vector is %d.\n", size(vec)); | 118 | printf("The size of the vector is %d.\n", size(vec)); |
| 68 | printf("The first element of the vector is %d.\n", at(vec, 0)); | 119 | printf("The first element of the vector is %d.\n", at(vec, 0)); |
| 69 | printf("is_empty returns: %d.\n", is_empty(vec)); | 120 | printf("is_empty returns: %d.\n", is_empty(vec)); |
| 121 | print_vec(vec); | ||
| 70 | 122 | ||
| 71 | 123 | destroy_vec(&vec); | |
| 72 | return 0; | 124 | return 0; |
| 73 | } | 125 | } |
