aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorleiyu3 <s444814187@gmail.com>2022-09-20 16:02:00 -0400
committerleiyu3 <s444814187@gmail.com>2022-09-20 16:02:00 -0400
commit646178db8e0160ffe6b01f809dde77892179b774 (patch)
treeee0c0396b995be3c3bf67ad1d4e4045ff8d407b7 /main.c
parent3c4db645d0188968f4dbe0317d63c7d638f47d03 (diff)
downloadvector_c-646178db8e0160ffe6b01f809dde77892179b774.tar.gz
vector_c-646178db8e0160ffe6b01f809dde77892179b774.zip
implemented insert
Diffstat (limited to 'main.c')
-rw-r--r--main.c60
1 files changed, 56 insertions, 4 deletions
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){
31 return 0; 31 return 0;
32} 32}
33 33
34int is_full(vector_t vec){
35 if (vec.cur_size >= vec.max_size){
36 return 1;
37 }
38 return 0;
39}
40
34int at(vector_t vec, int index){ 41int 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
43void push(vector_t *vec, int value){ 50void 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
53void insert(vector_t *vec, int index, int item){ 62void 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
79void 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
88void destroy_vec(vector_t *vec){
89 free(vec->arr);
55} 90}
56 91
57int main(void){ 92int 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}