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).
|
||||
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.
|
||||
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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user