arbeiten an stack.c

This commit is contained in:
Tobias Kachel 2025-12-05 11:13:27 +01:00
parent 624a7d8b41
commit 81de4b3d36
4 changed files with 9 additions and 5 deletions

View File

@ -1,4 +1,4 @@
t #include <string.h>
#include <string.h>
#include "stack.h"
#include "bintree.h"

View File

@ -69,11 +69,15 @@ StackNode *pop(StackNode *stack) {
void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; }
// Clears stack and releases all memory.
void *clearStack(StackNode *stack) {
void clearStack(StackNode *stack) {
while (stack != NULL) {
StackNode *next = stack->next;
stack->data = NULL;
stack->prev = NULL;
stack->next = NULL;
free(stack);
stack = next;
}

View File

@ -14,7 +14,7 @@ typedef struct StackNode {
void *data;
struct StackNode *next;
struct StackNode *prev;
} StackNode;
StackNode *createNode(void *data);
@ -30,6 +30,6 @@ StackNode *pop(StackNode *stack);
void *top(StackNode *stack);
// Clears stack and releases all memory.
StackNode *clearStack(StackNode *stack);
void clearStack(StackNode *stack);
#endif

View File

@ -36,7 +36,7 @@ void test_clearStack(void) {
testStack = push(testStack, &testInts[i]);
}
testStack = clearStack(testStack);
clearStack(testStack);
TEST_ASSERT_NULL(testStack);
}