numbers.c fertig bintree.c angefangen

This commit is contained in:
Ben Skuppin 2025-12-04 17:14:11 +01:00
parent 370c89d0f3
commit d0b7b483ee
2 changed files with 60 additions and 0 deletions

View File

@ -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;
}

View File

@ -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;
}