diff --git a/.idea/editor.xml b/.idea/editor.xml index ec90224..25c6c37 100644 --- a/.idea/editor.xml +++ b/.idea/editor.xml @@ -243,5 +243,102 @@ diff --git a/stack.c b/stack.c index 01224bc..f76e283 100644 --- a/stack.c +++ b/stack.c @@ -22,11 +22,11 @@ StackNode *push(StackNode *stack, void *data) // Neuer Knoten im Heap im Format StackNode --> newNode ist ein Zeiger darauf StackNode *newNode = malloc(sizeof(StackNode)); - // Speichert den Pointer den Fkt. bekommen hat in Datenfeld/Strukturfeld --> void *data + // Speichert Datenzeiger im data-Feld newNode->data = data; // Verbindet neuen Knoten mit bisherigen Stack, newNode zeigt jetzt auf das bisherige Top - newNode->next = stack; + newNode->nextNode = stack; return newNode; } @@ -36,7 +36,7 @@ StackNode *push(StackNode *stack, void *data) // (Pointer to data has to be // freed by caller.) --> data selber löschen -// pop löscht das oberste Element +// pop entfernt das oberste Element // Parameter: // StackNode *stack --> das aktuelle Top @@ -49,7 +49,7 @@ StackNode *pop(StackNode *stack) return NULL; //wenn Stack leer dann nichts tun } - StackNode *next = stack->next; // das nächste Element wird neues Top + StackNode *next = stack->nextNode; // das nächste Element wird neues Top free(stack); // altes Top wird aus Speicher entfernt return next; // gibt neues Top zurück } @@ -81,7 +81,7 @@ void *top(StackNode *stack) void clearStack(StackNode *stack) { while (stack != NULL) { // solange es Knoten gibt mach weiter, am Ende der liste -> NULL - StackNode *next = stack->next; // nächster Knoten wird ausgewählt + StackNode *next = stack->nextNode; // nächster Knoten wird ausgewählt free(stack); // Top wird gelöscht stack = next; // nächster Knoten ist stack (Top) } diff --git a/stack.h b/stack.h index a068f43..6b7e878 100644 --- a/stack.h +++ b/stack.h @@ -9,8 +9,8 @@ The latest element is taken from the stack. */ //TODO: passenden Datentyp als struct anlegen typedef struct StackNode { - void *data; //Zeiger auf unbekannten Typ oder Struktur --> damit beliebige Daten speichern mgl. - struct StackNode *next; //Zeiger auf nächsten Knoten + void *data; //Zeiger auf beliebige Daten speichern mgl. + struct StackNode *nextNode; //Zeiger auf nächsten Knoten } StackNode; // Pushes data as pointer onto the stack. diff --git a/test_stack.exe b/test_stack.exe index 493be46..87c27a3 100644 Binary files a/test_stack.exe and b/test_stack.exe differ