implemented top & clearStack

This commit is contained in:
Niklas Kegelmann 2025-12-08 14:35:37 +01:00
parent 67b8200966
commit 5ba5396030

18
stack.c
View File

@ -26,7 +26,7 @@ StackNode *push(StackNode *stack, void *data)
// freed by caller.) // freed by caller.)
StackNode *pop(StackNode *stack) StackNode *pop(StackNode *stack)
{ {
// überprüfen ob stack einen wert besitzt data = wert next = node // überprüfen ob stack einen wert besitzt
if (!stack) if (!stack)
return NULL; return NULL;
//oberstes element raussuchen und dieses auf free setzen //oberstes element raussuchen und dieses auf free setzen
@ -42,12 +42,22 @@ StackNode *pop(StackNode *stack)
void *top(StackNode *stack) void *top(StackNode *stack)
{ {
//funktions return ist oberstes stack element //funktions return ist oberstes stack element
if (!stack)
return NULL;
StackNode *next = stack->data;
return next;
} }
// Clears stack and releases all memory. // Clears stack and releases all memory.
void clearStack(StackNode *stack) void clearStack(StackNode *stack)
{ {
//überprüfen ob die malloc speicher enthält (also nicht free ist)
//komplett malloc auf free setzen while(stack != NULL)
//stack returnen {
StackNode *next = stack->next;
free(stack);
stack = next;
}
} }