bugfix bintree
This commit is contained in:
parent
75291daff4
commit
81fbacabdc
16
bintree.c
16
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user