rename src to utils

This commit is contained in:
Greg Wells
2025-06-06 20:14:51 -04:00
parent db55ccc0f0
commit 7e30aaabd7
13 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
#pragma once
#include "stdlib.h"
typedef struct gnArrayList {
int count;
int maxCount;
void* data;
} gnArrayList;
const int GROWTH_RATE = 2; // i heard somewhere that 1.5 is better but imma use 2 because I also heard that its better somewhere else
inline gnArrayList gnCreateArrayList(int count) {
gnArrayList newList;
if (count == 0) {
} else {
newList.count = count;
newList.maxCount = count;
newList.data = malloc(sizeof(void*) * count);
}
return newList;
}
inline void gnArrayListResize(gnArrayList* cList, int count) {
cList->count = count;
while (cList->count > cList->maxCount) {
int oldMaxCount = cList->maxCount;
cList->maxCount *= GROWTH_RATE;
if (cList->count == oldMaxCount) {
cList->maxCount += 1;
}
}
cList->data = realloc(cList->data, cList->maxCount);
}
inline void gnArrayListReserve(gnArrayList* cList, int count) {
while (cList->count > cList->maxCount) {
int oldMaxCount = cList->maxCount;
cList->maxCount *= GROWTH_RATE;
if (cList->count == oldMaxCount) {
cList->maxCount += 1;
}
}
cList->data = realloc(cList->data, cList->maxCount);
}

View File

@@ -0,0 +1,22 @@
#pragma once
#include "stdlib.h"
// why would one use a linked list
typedef struct gnLinkedList {
void* data;
gnLinkedList* nextNode;
} gnLinkedList;
static gnLinkedList gnCreateLinkedList(int count) {
gnLinkedList list;
gnLinkedList* currentNode = &list;
for (int i = 0; i < count; i++) {
if ((i + 1) < count) {
currentNode->nextNode = (gnLinkedList*)malloc(sizeof(gnLinkedList));
currentNode = currentNode->nextNode;
}
}
return list;
}