From 2bb9bc1fa37d1881e160cbc599db3b39f9ff34d3 Mon Sep 17 00:00:00 2001 From: Florian Burgener <florian.burgener@etu.hesge.ch> Date: Wed, 25 May 2022 10:20:53 +0200 Subject: [PATCH] Rewrite arrays --- src/Array.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/Array.h | 39 +++++++++++++++ src/Array.o | Bin 0 -> 6016 bytes src/main.o | Bin 14248 -> 16496 bytes src/program | Bin 121624 -> 123688 bytes 5 files changed, 176 insertions(+) create mode 100644 src/Array.c create mode 100644 src/Array.h create mode 100644 src/Array.o diff --git a/src/Array.c b/src/Array.c new file mode 100644 index 0000000..69729f9 --- /dev/null +++ b/src/Array.c @@ -0,0 +1,137 @@ +#include "Array.h" + +#include <stdbool.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> + +int _lower_bound(IntegerArray *array, uint64_t item) { + int low = 0; + int high = array->size - 1; + + while (low <= high) { + int m = (low + high) / 2; + + if (array->items[m] < item) { + low = m + 1; + } else if (array->items[m] > item) { + high = m - 1; + } else { + return m; + } + } + + return low; +} + +IntegerArray *IntegerArray_init(int capacity) { + IntegerArray *array = (IntegerArray *)malloc(sizeof(IntegerArray)); + array->items = (uint64_t *)malloc(sizeof(uint64_t) * capacity); + array->size = 0; + return array; +} + +void IntegerArray_destroy(IntegerArray **array) { + free((*array)->items); + free(*array); + *array = NULL; +} + +int IntegerArray_insert_sorted(IntegerArray *array, uint64_t item) { + int index = _lower_bound(array, item); + + for (int i = array->size - 1; i >= index; i--) { + array[i + 1] = array[i]; + } + + array->items[index] = item; + array->size++; + return index; +} + +void IntegerArray_insert_at_index(IntegerArray *array, int index, uint64_t item) { + for (int i = array->size - 1; i >= index; i--) { + array[i + 1] = array[i]; + } + + array->items[index] = item; + array->size++; +} + +void IntegerArray_append(IntegerArray *array, uint64_t item) { + array->items[array->size] = item; + array->size++; +} + +static _IntegerArray_find_index(IntegerArray *array, uint64_t item) { + int low = 0; + int high = array->size - 1; + + while (low <= high) { + int m = (low + high) / 2; + + if (array->items[m] < item) { + low = m + 1; + } else if (array->items[m] > item) { + high = m - 1; + } else { + return m; + } + } + + return -1; +} + +bool IntegerArray_binary_search(IntegerArray *array, uint64_t item, int *index) { + *index = _IntegerArray_find_index(array, item); + return *index != -1; +} + +void IntegerArray_print(IntegerArray *array) { + printf("["); + + for (int i = 0; i < array->size; i++) { + printf("%ld", array->items[i]); + + if (i < array->size - 1) { + printf(", "); + } + } + + printf("]\n"); +} + +BPTreeNodeArray *BPTreeNodeArray_init(int capacity) { + BPTreeNodeArray *array = (BPTreeNodeArray *)malloc(sizeof(BPTreeNodeArray)); + array->items = (BPTreeNodeArray **)malloc(sizeof(BPTreeNodeArray *) * capacity); + array->size = 0; + return array; +} + +void BPTreeNodeArray_destroy(BPTreeNodeArray **array) { + free((*array)->items); + free(*array); + *array = NULL; +} + +void BPTreeNodeArray_insert_at_index(BPTreeNodeArray *array, int index, BPTreeNode *item) { + for (int i = array->size - 1; i >= index; i--) { + array[i + 1] = array[i]; + } + + array->items[index] = item; + array->size++; +} + +void BPTreeNodeArray_append(BPTreeNodeArray *array, BPTreeNode *item) { + array->items[array->size] = item; + array->size++; +} + +void BPTreeNodeArray_delete_at_index(BPTreeNodeArray *array, int index) { + for (int i = index; i < array->size; i++) { + array[i] = array[i + 1]; + } + + array->size--; +} diff --git a/src/Array.h b/src/Array.h new file mode 100644 index 0000000..38f8f81 --- /dev/null +++ b/src/Array.h @@ -0,0 +1,39 @@ +#ifndef ARRAY_H +#define ARRAY_H + +#include <stdbool.h> +#include <stdint.h> + +typedef struct IntegerArray { + uint64_t *items; + int size; +} IntegerArray; + +int _lower_bound(IntegerArray *array, uint64_t item); + +IntegerArray *IntegerArray_init(int capacity); +void IntegerArray_destroy(IntegerArray **array); + +int IntegerArray_insert_sorted(IntegerArray *array, uint64_t item); +void IntegerArray_insert_at_index(IntegerArray *array, int index, uint64_t item); +void IntegerArray_append(IntegerArray *array, uint64_t item); +bool IntegerArray_binary_search(IntegerArray *array, uint64_t item, int *index); +void IntegerArray_delete_sorted(IntegerArray *array, uint64_t item); + +void IntegerArray_print(IntegerArray *array); + +typedef struct BPTreeNode BPTreeNode; + +typedef struct BPTreeNodeArray { + BPTreeNode **items; + int size; +} BPTreeNodeArray; + +BPTreeNodeArray *BPTreeNodeArray_init(int capacity); +void BPTreeNodeArray_destroy(BPTreeNodeArray **array); + +void BPTreeNodeArray_insert_at_index(BPTreeNodeArray *array, int index, BPTreeNode *item); +void BPTreeNodeArray_append(BPTreeNodeArray *array, BPTreeNode *item); +void BPTreeNodeArray_delete_at_index(BPTreeNodeArray *array, int index); + +#endif diff --git a/src/Array.o b/src/Array.o new file mode 100644 index 0000000000000000000000000000000000000000..3ed4c786af04dda387dd90c52d6bb442897ae93b GIT binary patch literal 6016 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 literal 0 HcmV?d00001 diff --git a/src/main.o b/src/main.o index ca2341be399e9bed35f53bf070ec7056618708e1..0de5ffdac02eecf0d672afa2dce4461f9a77d871 100644 GIT binary patch literal 16496 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 literal 14248 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 F4*;WNrbPe% diff --git a/src/program b/src/program index c0146df79aba0eb288537ce614d67e08d5b8afbd..52a9237a73e8f0928c5dcb8e03ebb63a1a9f0aa2 100644 GIT binary patch delta 16380 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 delta 14771 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 -- GitLab