From d0b7b483eef1e9ba50f4dd04cf2d207e5b5c8202 Mon Sep 17 00:00:00 2001 From: Ben Skuppin Date: Thu, 4 Dec 2025 17:14:11 +0100 Subject: [PATCH] numbers.c fertig bintree.c angefangen --- bintree.c | 19 +++++++++++++++++++ numbers.c | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/bintree.c b/bintree.c index 5cf82a9..d4a26ff 100644 --- a/bintree.c +++ b/bintree.c @@ -12,6 +12,25 @@ // 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 (root == NULL){ + Treenode *node = malloc(sizeof(Treenode)); + if (!node) + return NULL; + + node->date = malloc(dataSize) + if (!node->data) + + + + + TreeNode *root = malloc(sizeof(TreeNode)); + + function createNode(data) + root = new TreeNode; + node -> data = data; + node -> left = NULL; + node -> right = NULL; + return root; } diff --git a/numbers.c b/numbers.c index f59d9a2..a0aa07b 100644 --- a/numbers.c +++ b/numbers.c @@ -16,11 +16,52 @@ // creating random numbers. unsigned int *createNumbers(unsigned int len) { + srand(time(NULL)); + unsigned int* numbers =malloc(sizeof(unsigned int) * len); + unsigned int = numberTemp; + bool check = false; + for(int i = 0; i < len; i++){ + + while(check == false){ + numberTemp = rand() % 100; + + for(int j = 0; j < i; j++){ + if(numberTemp == numbers[j]){ + check = false; + + break; + } + + if(j + 1 == i){ + check = true; + } + } + + numbers[i] = numberTemp; + } + + } + + return numbers; } // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { + unsigned int duplicate; + unsigned int duplicateId; + unsigned int duplicatePlace; + duplicateId = rand() % len; + duplicate = numbers[duplicateId]; + + do{ + duplicatePlace = rand() % len; + + }while(duplicatePlace == duplicateId); + + numbers[duplicatePlace] = duplicate; + + return duplicate; } \ No newline at end of file