generated from freudenreichan/info2Praktikum-DobleSpiel
Noch ein paar Kommentare zum binTree
This commit is contained in:
parent
f513d63ebf
commit
dcdc1949ab
@ -38,7 +38,7 @@ void test_add_multiple_elements_to_Tree()
|
|||||||
|
|
||||||
for(int j = 0; j < 4; ++j)
|
for(int j = 0; j < 4; ++j)
|
||||||
{
|
{
|
||||||
root = addToTree(root, &value[j], sizeof(int), compare, &duplicate);
|
root = addToTree(root, &value[j], sizeof(int), compare, &duplicate); //Duplikate nicht erlaubt
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_ASSERT_EQUAL_INT(4, treeSize(root));
|
TEST_ASSERT_EQUAL_INT(4, treeSize(root));
|
||||||
@ -91,7 +91,7 @@ void test_add_multiplie_elements_one_dup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Traverses the tree inorder to check wether nextTreeData works
|
|
||||||
// Hilfsfunktion: rekursive Inorder-Prüfung
|
// Hilfsfunktion: rekursive Inorder-Prüfung
|
||||||
void inorderCheck(TreeNode *node, int expected[], int *idx) {
|
void inorderCheck(TreeNode *node, int expected[], int *idx) {
|
||||||
if (node == NULL) return;
|
if (node == NULL) return;
|
||||||
@ -99,14 +99,14 @@ void inorderCheck(TreeNode *node, int expected[], int *idx) {
|
|||||||
// Linken Teilbaum prüfen
|
// Linken Teilbaum prüfen
|
||||||
inorderCheck(node->left, expected, idx);
|
inorderCheck(node->left, expected, idx);
|
||||||
|
|
||||||
// Aktuelles Element prüfen
|
// Aktuelles Element prüfen -> wenn das aktuelle Element gefunden wurde, wird naechstes gesucht
|
||||||
TEST_ASSERT_EQUAL_INT(expected[*idx], *(int*)node->data);
|
TEST_ASSERT_EQUAL_INT(expected[*idx], *(int*)node->data);
|
||||||
(*idx)++;
|
(*idx)++;
|
||||||
|
|
||||||
// Rechten Teilbaum prüfen
|
// Rechten Teilbaum prüfen
|
||||||
inorderCheck(node->right, expected, idx);
|
inorderCheck(node->right, expected, idx);
|
||||||
}
|
}
|
||||||
|
//Traverses the tree inorder to check wether nextTreeData works
|
||||||
void test_inorder() {
|
void test_inorder() {
|
||||||
TreeNode *root = NULL;
|
TreeNode *root = NULL;
|
||||||
int values[] = {5, 3, 7, 2, 4, 6, 8};
|
int values[] = {5, 3, 7, 2, 4, 6, 8};
|
||||||
@ -120,6 +120,7 @@ void test_inorder() {
|
|||||||
int expected[] = {2,3,4,5,6,7,8};
|
int expected[] = {2,3,4,5,6,7,8};
|
||||||
|
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
//rekursives Pruefen der Eintraege
|
||||||
inorderCheck(root, expected, &idx);
|
inorderCheck(root, expected, &idx);
|
||||||
|
|
||||||
// Alle Einträge geprüft?
|
// Alle Einträge geprüft?
|
||||||
|
|||||||
@ -14,7 +14,7 @@ TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFc
|
|||||||
{
|
{
|
||||||
if(data!= NULL && dataSize > 0)
|
if(data!= NULL && dataSize > 0)
|
||||||
{
|
{
|
||||||
if(root == NULL) //Abbruchbedingung: Keine Wurzel vorhanden, deshalb fügen wir hier einen neuen Knote ein
|
if(root == NULL) //Abbruchbedingung: Keine Wurzel vorhanden, deshalb fuegen wir hier einen neuen Knote ein
|
||||||
{
|
{
|
||||||
TreeNode *newNode = (TreeNode *)malloc(sizeof(TreeNode));
|
TreeNode *newNode = (TreeNode *)malloc(sizeof(TreeNode));
|
||||||
if(newNode == NULL)
|
if(newNode == NULL)
|
||||||
@ -31,7 +31,7 @@ TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFc
|
|||||||
newNode->left = NULL;
|
newNode->left = NULL;
|
||||||
newNode->right = NULL;
|
newNode->right = NULL;
|
||||||
|
|
||||||
if(isDuplicate!= NULL) //wenn Zeiger isDUplicate auf einen Wert zeigt, wird isDuplicate auf 0 gesetzt
|
if(isDuplicate!= NULL) //wenn isDuplicate ungelich null, ignoriere duplikate und setze isDuplaicate 0 fuer neues Element
|
||||||
{
|
{
|
||||||
*isDuplicate = 0;
|
*isDuplicate = 0;
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFc
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (isDuplicate) {
|
if (isDuplicate) { //Duplikate sollen ignoriert werden
|
||||||
*isDuplicate = 1;
|
*isDuplicate = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user