generated from freudenreichan/info2Praktikum-DobleSpiel
implemented top & clearStack
This commit is contained in:
parent
67b8200966
commit
5ba5396030
18
stack.c
18
stack.c
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user