DobleSpiel/bintree.h
2025-12-03 13:25:27 +01:00

28 lines
688 B
C

#ifndef BINTREE_H
#define BINTREE_H
#include <stdlib.h>
// Funktionszeiger für Vergleiche
typedef int (*CompareFctType)(const void *arg1, const void *arg2);
typedef struct node
{
void *data;
struct node *left;
struct node *right;
} TreeNode;
// Fügt Daten ein. Akzeptiert Duplikate, wenn isDuplicate NULL ist.
TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFctType compareFct, int *isDuplicate);
// Iteriert über den Baum (stateful mit internem Stack, wie strtok)
void *nextTreeData(TreeNode *root);
// Löscht den Baum und die Daten
void clearTree(TreeNode *root);
// Zählt Knoten
unsigned int treeSize(const TreeNode *root);
#endif