From be5c1754f9dd04deeffea8f6c259401cce72db2c Mon Sep 17 00:00:00 2001 From: silvana884 Date: Wed, 3 Dec 2025 22:07:13 +0100 Subject: [PATCH] NextTreeData erster versuch --- bintree.c | 32 ++++++++++++++++++++++++++++---- doble_initial.exe | Bin 57446 -> 57446 bytes highscores.txt | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/bintree.c b/bintree.c index 1b8aa4c..6eece17 100644 --- a/bintree.c +++ b/bintree.c @@ -66,12 +66,36 @@ TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFc // push the top node and push all its left nodes. void *nextTreeData(TreeNode *root) { - if(root == NULL) + static StackNode *stack = NULL; + + // Beim ersten Aufruf: ganzen linken Pfad pushen + if(root != NULL) { - - + while(root != NULL) + { + stack = push(stack, root); // TreeNode auf den Stack + root = root->left; + } } - stackNode.top(root); + + // Wenn Stack leer -> fertig + if(stack == NULL) + return NULL; + + // Obersten Knoten holen + TreeNode *node = (TreeNode*) top(stack); + stack = pop(stack); + + // Rechten Teilbaum absteigen + TreeNode *right = node->right; + while(right != NULL) + { + stack = push(stack, right); + right = right->left; + } + + return node->data; + } // Releases all memory resources (including data copies). diff --git a/doble_initial.exe b/doble_initial.exe index 1162fb90a02f8566c400bccc118836de85b4dc31..71ee97fdac74409bd7021d7e5ea175936a513298 100644 GIT binary patch delta 22 ecmaEMfce=0<_R54kEc!S@?%b@W!!kX`#u1HkP9XN delta 22 ecmaEMfce=0<_R54nw%56{Fs-$XV`eV`#u166AG39 diff --git a/highscores.txt b/highscores.txt index 0edaa84..67b8a3c 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,2 +1,3 @@ Silvana;9944 +hannes;9910 player1;3999