Skip to content
Snippets Groups Projects
Array.h 1.28 KiB
#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);
void IntegerArray_clear(IntegerArray *array);
void IntegerArray_copy(IntegerArray *src, IntegerArray *dest);

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