arbeiten an stack.c
This commit is contained in:
parent
624a7d8b41
commit
81de4b3d36
@ -1,4 +1,4 @@
|
|||||||
t #include <string.h>
|
#include <string.h>
|
||||||
#include "stack.h"
|
#include "stack.h"
|
||||||
#include "bintree.h"
|
#include "bintree.h"
|
||||||
|
|
||||||
|
|||||||
6
stack.c
6
stack.c
@ -69,11 +69,15 @@ StackNode *pop(StackNode *stack) {
|
|||||||
void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; }
|
void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; }
|
||||||
|
|
||||||
// Clears stack and releases all memory.
|
// Clears stack and releases all memory.
|
||||||
void *clearStack(StackNode *stack) {
|
void clearStack(StackNode *stack) {
|
||||||
|
|
||||||
while (stack != NULL) {
|
while (stack != NULL) {
|
||||||
|
|
||||||
StackNode *next = stack->next;
|
StackNode *next = stack->next;
|
||||||
|
stack->data = NULL;
|
||||||
|
stack->prev = NULL;
|
||||||
|
stack->next = NULL;
|
||||||
|
|
||||||
free(stack);
|
free(stack);
|
||||||
stack = next;
|
stack = next;
|
||||||
}
|
}
|
||||||
|
|||||||
4
stack.h
4
stack.h
@ -14,7 +14,7 @@ typedef struct StackNode {
|
|||||||
void *data;
|
void *data;
|
||||||
struct StackNode *next;
|
struct StackNode *next;
|
||||||
struct StackNode *prev;
|
struct StackNode *prev;
|
||||||
|
|
||||||
} StackNode;
|
} StackNode;
|
||||||
|
|
||||||
StackNode *createNode(void *data);
|
StackNode *createNode(void *data);
|
||||||
@ -30,6 +30,6 @@ StackNode *pop(StackNode *stack);
|
|||||||
void *top(StackNode *stack);
|
void *top(StackNode *stack);
|
||||||
|
|
||||||
// Clears stack and releases all memory.
|
// Clears stack and releases all memory.
|
||||||
StackNode *clearStack(StackNode *stack);
|
void clearStack(StackNode *stack);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -36,7 +36,7 @@ void test_clearStack(void) {
|
|||||||
testStack = push(testStack, &testInts[i]);
|
testStack = push(testStack, &testInts[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
testStack = clearStack(testStack);
|
clearStack(testStack);
|
||||||
TEST_ASSERT_NULL(testStack);
|
TEST_ASSERT_NULL(testStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user