vector.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include <stddef.h>
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include "zalloc.h"
  5. #include "vector.h"
  6. #include "systypes.h"
  7. zv_vector_t * zv_vector_create(void) {
  8. if (!zv_malloc_avairable()) {
  9. return NULL
  10. }
  11. zv_vector_t *self = (zv_vector_t *) zv_malloc(sizeof(zv_vector_t));
  12. if (self == NULL) {
  13. return NULL;
  14. }
  15. self->first = NULL;
  16. self->last = NULL;
  17. self->size = 0;
  18. return self;
  19. }
  20. void zv_vector_delete(zv_vector_t *self) {
  21. zv_vector_container_t *current = self->first;
  22. while (current != NULL) {
  23. zv_vector_container_t *next = current->next;
  24. zv_free(current);
  25. current = next;
  26. }
  27. zv_free(self);
  28. }
  29. bool zv_vector_avairable(void) {
  30. return zv_zalloc_avairable();
  31. }
  32. bool zv_vector_push(zv_vector_t *self, zv_universal_t content) {
  33. zv_vector_container_t *target = zv_malloc(sizeof(zv_vector_container_t));
  34. if (target == NULL) {
  35. return false;
  36. }
  37. target->next = NULL;
  38. target->content = content;
  39. target->previous = self->last;
  40. self->last = target;
  41. return true;
  42. }
  43. zv_universal_t zv_vector_pop(zv_vector_t *self) {
  44. zv_universal_t result = self->last->
  45. return result;
  46. }
  47. zv_universal_t * zv_vector_get_pointer(zv_vector_t *self, zv_size_t target) {
  48. }
  49. zv_universal_t zv_vector_get(zv_vector_t *self, zv_size_t target) {
  50. }
  51. bool zv_vector_insert(
  52. zv_vector_t *self,
  53. zv_universal_t content,
  54. zv_size_t after
  55. ) {
  56. }
  57. zv_universal_t zv_vector_remove(
  58. zv_vector_t *self,
  59. zv_size_t target
  60. ) {
  61. }
  62. zv_universal_t zv_vector_set(
  63. zv_vector_t *self,
  64. zv_universal_t content,
  65. zv_size_t target
  66. ) {
  67. }