I2_Projects/I2_Dobble/test_stack.c

81 lines
1.8 KiB
C

#include <bits/types/stack_t.h>
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
void inspectStack(StackNode *stack)
{
if (stack != NULL)
{
printf("Der Stack enthält die folgenden Elemente: %d", *(int*)stack->value);
while (stack->next != NULL)
{
printf(" %d", *(int*)stack->next->value);
stack = stack->next;
}
putchar('\n');
}
else
{
printf("Der Stack ist leer\n");
}
}
int main()
{
StackNode *stack;
stack = NULL; // initialisierung mit NULL -> leere Liste
printf("...ein Element wird eingefügt...\n");
int toBeRemoved = 42;
stack = push(stack, &toBeRemoved);
inspectStack(stack);
printf("...das Element wird wieder entfernt...\n");
stack = pop(stack);
inspectStack(stack);
printf("...pop auf leeren Stack...\n");
stack = pop(stack);
inspectStack(stack);
putchar('\n');
int data[5] = {1, 2, 3, 4, 5};
// alle 5 werte der reihe nach auf den Satck legen - 1 unten ... 5 oben
for (int i = 0; i < 5; i++)
{
stack = push(stack, &data[i]);
}
//alle Elemente mit Test-Funktion ausgeben
inspectStack(stack);
// Elemente stück für Stück ausgeben und entfernen
printf("1. Element war: %d\n", *(int*)top(stack));
stack = pop(stack);
printf("2. Element war: %d\n", *(int*)top(stack));
stack = pop(stack);
printf("3. Element war: %d\n", *(int*)top(stack));
stack = pop(stack);
printf("4. Element war: %d\n", *(int*)top(stack));
stack = pop(stack);
printf("5. Element war: %d\n", *(int*)top(stack));
}
/*
int main()
{
UNITY_BEGIN();
printf("============================\n Stack tests\n============================\n");
RUN_TEST(test_createNodeFailsOnZeroData);
return UNITY_END();
}
*/