diff --git a/bintree.c b/bintree.c index 4fc5e59..1da97a8 100644 --- a/bintree.c +++ b/bintree.c @@ -80,31 +80,33 @@ void *nextTreeData(TreeNode *root) if (stack) { - freeStack(stack); + clearStack(&stack); stack = NULL; } - - stack = createStack(); + //leeren Stack initialisieren + stack = NULL; // alle linken Knoten vom Wurzelknoten pushen currentNode = root; while (currentNode) { - push(stack, currentNode); + stack = push(stack, currentNode); currentNode = currentNode->left; } } // Stack ist leer, keine Daten mehr - if (!stack || isEmpty(stack)) + if (!stack) return NULL; - TreeNode *newNode = pop(stack); // nächster Knoten + TreeNode *newNode = (TreeNode *)top(stack); + // Stack-Knoten entfernen + stack = pop(stack); // Wenn rechter Teilbaum vorhanden → alle linken Knoten pushen currentNode = newNode->right; while (currentNode) { - push(stack, currentNode); + stack = push(stack, currentNode); currentNode = currentNode->left; } return newNode->data; // Daten zurückgeben diff --git a/main.o b/main.o new file mode 100644 index 0000000..a5219de Binary files /dev/null and b/main.o differ diff --git a/numbers.o b/numbers.o deleted file mode 100644 index 371b158..0000000 Binary files a/numbers.o and /dev/null differ diff --git a/stack.o b/stack.o new file mode 100644 index 0000000..50cf531 Binary files /dev/null and b/stack.o differ