From 85b05133ea257e7bc7ccc2407d56eb08d9f20b83 Mon Sep 17 00:00:00 2001 From: Tobias Grampp Date: Mon, 8 Dec 2025 12:14:32 +0100 Subject: [PATCH] not working, but a potential way I want to possilby iterarte back to --- bintree.c | 26 ++++++++++++++++++++------ bintree.h | 5 +++-- highscore.c | 1 - highscores.txt | 10 ---------- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/bintree.c b/bintree.c index 7168818..5f0ffc4 100644 --- a/bintree.c +++ b/bintree.c @@ -3,7 +3,7 @@ #include "bintree.h" #include -StackNode *stackRoot = NULL;//Generates a new, empty stack for next tree data +StackNode *stackRoot;//Generates a new, empty stack for next tree data //TODO: binären Suchbaum implementieren /* * `addToTree`: fügt ein neues Element in den Baum ein (rekursiv), @@ -52,15 +52,29 @@ 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) { + printf("nextTreeData wurde gecallt!\n"); if(root) { - stackRoot = push(root->data, stackRoot); - nextTreeData(root->left); - nextTreeData(root->right); + addTreeToStack(stackRoot, root); + printf("Baum wurde geladen!\n"); + } + void *buffer = pop(stackRoot); + printf("neuer Eintrag wurde geholt: %x\n", buffer); + return buffer; +} +// Adds all Treenode-Datas of a root into a stack ordered from left to right +void addTreeToStack(StackNode *start, TreeNode *root) +{ + if(root->left) + { + addTreeToStack(start, root->left); + } + push(start, root->data); + if(root->right) + { + addTreeToStack(start, root->right); } - return stackRoot; } - // Releases all memory resources (including data copies). void clearTree(TreeNode *root) diff --git a/bintree.h b/bintree.h index e9244b8..9ece646 100644 --- a/bintree.h +++ b/bintree.h @@ -1,6 +1,7 @@ #ifndef BINTREE_H #define BINTREE_H +#include #include #include "stack.h" @@ -24,6 +25,6 @@ void *nextTreeData(TreeNode *root); void clearTree(TreeNode *root); // Returns the number of entries in the tree given by root. unsigned int treeSize(const TreeNode *root); -//Function to aid nextTreeData -StackNode *iterateThroughTree(TreeNode *root, StackNode *stackRoot); +// Adds all Treenode-Datas of a root into a stack ordered from left to right +void addTreeToStack(StackNode *start, TreeNode *root); #endif \ No newline at end of file diff --git a/highscore.c b/highscore.c index 90199a0..fe8a458 100644 --- a/highscore.c +++ b/highscore.c @@ -52,7 +52,6 @@ static int calculateScore(double timeInSeconds, unsigned int len) // Load highscores from file into memory. void loadHighscores(const char *path) { - printf("pointer ist: %x", highscoreTree); FILE *file = fopen(path, "r"); if(file != NULL) diff --git a/highscores.txt b/highscores.txt index 01e2d79..e69de29 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,10 +0,0 @@ -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0 -Ðáhý;0