generated from freudenreichan/info2Praktikum-DobleSpiel
numbers.c fertig bintree.c angefangen
This commit is contained in:
parent
370c89d0f3
commit
d0b7b483ee
19
bintree.c
19
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).
|
// 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)
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
41
numbers.c
41
numbers.c
@ -16,11 +16,52 @@
|
|||||||
// creating random numbers.
|
// creating random numbers.
|
||||||
unsigned int *createNumbers(unsigned int len)
|
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.
|
// 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 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;
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user