From 856197fe5f90fb0efec35c79db6cfea4095c75ec Mon Sep 17 00:00:00 2001 From: maxgrf Date: Thu, 11 Dec 2025 10:47:39 +0100 Subject: [PATCH] bintree --- bintree.c | 109 +++++++++++++++++++++++++++++++++++++++++++--- doble_initial.exe | Bin 0 -> 66659 bytes highscores.txt | 1 + stack.h | 5 ++- 4 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 doble_initial.exe diff --git a/bintree.c b/bintree.c index 5cf82a9..4fc5e59 100644 --- a/bintree.c +++ b/bintree.c @@ -2,17 +2,67 @@ #include "stack.h" #include "bintree.h" -//TODO: binären Suchbaum implementieren +// TODO: binären Suchbaum implementieren /* * `addToTree`: fügt ein neues Element in den Baum ein (rekursiv), - * `clearTree`: gibt den gesamten Baum frei (rekursiv), - * `treeSize`: zählt die Knoten im Baum (rekursiv), - * `nextTreeData`: Traversierung mit Hilfe des zuvor implementierten Stacks. */ + * `clearTree`: gibt den gesamten Baum frei (rekursiv), + * `treeSize`: zählt die Knoten im Baum (rekursiv), + * `nextTreeData`: Traversierung mit Hilfe des zuvor implementierten Stacks. */ // Adds a copy of data's pointer destination to the tree using compareFct for ordering. Accepts duplicates // if isDuplicate is NULL, otherwise ignores duplicates and sets isDuplicate to 1 (or to 0 if a new entry is added). TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFctType compareFct, int *isDuplicate) { + if (isDuplicate) + *isDuplicate = 0; + // Wenn kein Knoten angelegt + if (root == NULL) + { + // Neuen Knoten erstellen + TreeNode *newNode = malloc(sizeof(TreeNode)); + if (!newNode) + return NULL; + // mit Daten füllen + newNode->data = malloc(dataSize); + if (!(newNode->data)) + { + free(newNode); + return NULL; + } + + memcpy(newNode->data, data, dataSize); + newNode->left = NULL; // Kinder NULL setzen + newNode->right = NULL; + return newNode; + } + // auf Doppellungen überprüfen, daten/werte vergelichen + // int cmp = compareFct(data, root->data); + + int cmp = compareFct(data, root->data); + + if (cmp == 0) // Duplikat erkannt + { + if (isDuplicate) // nicht einfügen + { + *isDuplicate = 1; + return root; + } + else // einfügen erlaubt + { + root->right = addToTree(root->right, data, dataSize, compareFct, NULL); + return root; + } + } + // kein Duplikat + if (cmp < 0) + { + root->left = addToTree(root->left, data, dataSize, compareFct, isDuplicate); + } + else if (cmp > 0) + { + root->right = addToTree(root->right, data, dataSize, compareFct, isDuplicate); + } + return root; } // Iterates over the tree given by root. Follows the usage of strtok. If tree is NULL, the next entry of the last tree given is returned in ordering direction. @@ -20,17 +70,64 @@ 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) { + static StackNode *stack = NULL; // Stack für Iterator + static TreeNode *lastRoot = NULL; + TreeNode *currentNode; + if (root != NULL) // Initialisierung bei erstem Aufruf + { + lastRoot = root; + + if (stack) + { + freeStack(stack); + stack = NULL; + } + + stack = createStack(); + + // alle linken Knoten vom Wurzelknoten pushen + currentNode = root; + while (currentNode) + { + push(stack, currentNode); + currentNode = currentNode->left; + } + } + // Stack ist leer, keine Daten mehr + if (!stack || isEmpty(stack)) + return NULL; + + TreeNode *newNode = pop(stack); // nächster Knoten + + // Wenn rechter Teilbaum vorhanden → alle linken Knoten pushen + currentNode = newNode->right; + while (currentNode) + { + push(stack, currentNode); + currentNode = currentNode->left; + } + return newNode->data; // Daten zurückgeben } // Releases all memory resources (including data copies). void clearTree(TreeNode *root) { - + if (root) + { + clearTree(root->left); + clearTree(root->right); + free(root->data); + free(root); + } } // Returns the number of entries in the tree given by root. unsigned int treeSize(const TreeNode *root) { - + unsigned int size = 0; + if (root == NULL) + return 0; + size = 1 + treeSize(root->left) + treeSize(root->right); + return size; } \ No newline at end of file diff --git a/doble_initial.exe b/doble_initial.exe new file mode 100644 index 0000000000000000000000000000000000000000..e667599f334b7dd20eb09997471cb96cf7c1d706 GIT binary patch literal 66659 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 literal 0 HcmV?d00001 diff --git a/highscores.txt b/highscores.txt index 4edd5a7..d87be45 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1 +1,2 @@ player1;3999 +player_name;3993 diff --git a/stack.h b/stack.h index f7d542d..49c389a 100644 --- a/stack.h +++ b/stack.h @@ -8,7 +8,10 @@ The latest element is taken from the stack. */ #include //TODO: passenden Datentyp als struct anlegen - +typedef struct Node { + void *data; + struct Node *next; +} StackNode; // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data);