#include #include #include #include "zalloc.h" #include "vector.h" #include "systypes.h" zv_vector_t * zv_vector_create(void) { if (!zv_malloc_avairable()) { return NULL } zv_vector_t *self = (zv_vector_t *) zv_malloc(sizeof(zv_vector_t)); if (self == NULL) { return NULL; } self->first = NULL; self->last = NULL; self->size = 0; return self; } void zv_vector_delete(zv_vector_t *self) { zv_vector_container_t *current = self->first; while (current != NULL) { zv_vector_container_t *next = current->next; zv_free(current); current = next; } zv_free(self); } bool zv_vector_avairable(void) { return zv_zalloc_avairable(); } bool zv_vector_push(zv_vector_t *self, zv_universal_t content) { zv_vector_container_t *target = zv_malloc(sizeof(zv_vector_container_t)); if (target == NULL) { return false; } target->next = NULL; target->content = content; target->previous = self->last; self->last = target; return true; } zv_universal_t zv_vector_pop(zv_vector_t *self) { zv_universal_t result = self->last-> return result; } zv_universal_t * zv_vector_get_pointer(zv_vector_t *self, zv_size_t target) { } zv_universal_t zv_vector_get(zv_vector_t *self, zv_size_t target) { } bool zv_vector_insert( zv_vector_t *self, zv_universal_t content, zv_size_t after ) { } zv_universal_t zv_vector_remove( zv_vector_t *self, zv_size_t target ) { } zv_universal_t zv_vector_set( zv_vector_t *self, zv_universal_t content, zv_size_t target ) { }