aboutsummaryrefslogtreecommitdiff
path: root/vector.c
diff options
context:
space:
mode:
Diffstat (limited to 'vector.c')
-rw-r--r--vector.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/vector.c b/vector.c
deleted file mode 100644
index 2c8f8d2..0000000
--- a/vector.c
+++ /dev/null
@@ -1,120 +0,0 @@
1#include <stdio.h>
2#include <stdlib.h>
3
4vector_t vector_init(int size){
5 vector_t vec;
6 vec.max_size = size;
7 vec.arr = malloc(sizeof(int)*vec.max_size);
8 vec.cur_size = 0;
9 return vec;
10}
11
12int size(vector_t vec){
13 return vec.cur_size;
14}
15
16int capacity(vector_t vec){
17 return vec.max_size;
18}
19
20int is_empty(vector_t vec){
21 if (vec.cur_size == 0){
22 return 1;
23 }
24 return 0;
25}
26
27int is_full(vector_t vec){
28 if (vec.cur_size >= vec.max_size){
29 return 1;
30 }
31 return 0;
32}
33
34int at(vector_t vec, int index){
35 if (index >= vec.max_size){
36 printf("Index out of bound!!\n");
37 exit(1);
38 }
39
40 return vec.arr[index];
41}
42
43void push(vector_t *vec, int value){
44 if (is_full(*vec)){
45 printf("Array out of Size!!\n\
46 Can't push!! \n\
47 Not yet implemented resize!!\n");
48 exit(1);
49 }
50
51 vec->arr[vec->cur_size] = value;
52 vec->cur_size++;
53}
54
55void insert(vector_t *vec, int index, int val){
56 if (is_full(*vec)){
57 printf("Array out of Size!!\n\
58 Can't insert!\n\
59 Not yet implemented resize!!\n");
60 exit(1);
61 }
62
63 int tmp;
64 for (int i = index; i <= vec->cur_size; i++){
65 tmp = val;
66 val = vec->arr[i];
67 vec->arr[i] = tmp;
68 }
69 vec->cur_size += 1;
70}
71
72void delete(vector_t *vec, int index){
73 if (!(index < vec->cur_size)){
74 printf("Invalid Index!\nFailed to Delete Element\n");
75 exit(-1);
76 }
77 int len = vec->cur_size - 1;
78
79 for (int i = index; i < len; i++){
80 vec->arr[i] = vec->arr[i+1];
81 }
82
83 vec->cur_size = vec->cur_size - 1;
84}
85
86void remove_val(vector_t *vec, int value){
87 int i = 0;
88 while (i < vec->cur_size){
89 if (vec->arr[i] == value){
90 delete(vec, i);
91 continue;
92 }
93 i++;
94 }
95}
96
97void prepend(vector_t *vec, int value){
98 insert(vec, 0, value);
99}
100
101int pop(vector_t *vec){
102 // remove item at the end, return value
103 int ret = vec->arr[vec->cur_size-1];
104 vec->cur_size--;
105 return ret;
106}
107
108void print_vec(vector_t vec){
109 printf("[");
110 for (int i = 0; i < vec.cur_size; i++){
111 printf("%d ", vec.arr[i]);
112
113 }
114 printf("]\n");
115}
116
117void destroy_vec(vector_t *vec){
118 free(vec->arr);
119}
120