3 Commits
Author SHA1 Message Date
silvana884 dcdc1949ab Noch ein paar Kommentare zum binTree 2025-12-12 06:49:18 +01:00
haemmerlre98889 f513d63ebf Kommentare angepasst 2025-12-11 15:47:51 +01:00
silvana884 f249355a30 Noch ein bisschen kommentiert 2025-12-11 10:00:44 +01:00
3 changed files with 12 additions and 17 deletions

No files matched your search

+7 -6
View File
@@ -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));
@@ -62,13 +62,13 @@ void test_detect_size() {
for (int j = 0; j < 10; ++j) { for (int j = 0; j < 10; ++j) {
root = addToTree(root, &values[j], sizeof(int), compare, &duplicate); root = addToTree(root, &values[j], sizeof(int), compare, &duplicate);
if (duplicate) { if (duplicate) {
// Optional: prüfen, dass ein Duplikat erkannt wurde // Ist der Wert schon eingefuegt? Also gibt es schon ein Duplikat?
TEST_ASSERT_TRUE(duplicate == 1); TEST_ASSERT_TRUE(duplicate == 1);
} }
duplicate = 0; // zurücksetzen für nächstes Einfügen duplicate = 0; // zurücksetzen für nächstes Einfügen
} }
// Prüfen der Baumgröße ohne Duplikate // Prüfen der Baumgroeße ohne Duplikate
TEST_ASSERT_EQUAL_INT(8, treeSize(root)); TEST_ASSERT_EQUAL_INT(8, treeSize(root));
clearTree(root); clearTree(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?
+3 -3
View File
@@ -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 {
+2 -8
View File
@@ -1,12 +1,6 @@
#include <stdlib.h> #include <stdlib.h>
#include "stack.h" #include "stack.h"
//TODO: grundlegende Stackfunktionen implementieren:
/* * `push`: legt ein Element oben auf den Stack,
* `pop`: entfernt das oberste Element,
* `top`: liefert das oberste Element zurück,
* `clearStack`: gibt den gesamten Speicher frei. */
// Pushes data as pointer onto the stack. // Pushes data as pointer onto the stack.
StackNode *push(StackNode *stack, void *data) StackNode *push(StackNode *stack, void *data)
{ {
@@ -14,7 +8,7 @@ StackNode *push(StackNode *stack, void *data)
{ {
return stack; //Nichts pushen return stack; //Nichts pushen
} }
//if(stack && data){
StackNode *t = (StackNode *)malloc(sizeof(StackNode)); StackNode *t = (StackNode *)malloc(sizeof(StackNode));
if(!t) if(!t)
{ {
@@ -23,7 +17,7 @@ StackNode *push(StackNode *stack, void *data)
t->next = stack; t->next = stack;
t->data = data; t->data = data;
return t; //Gibt den ersten StackNode des Stacks zurueck return t; //Gibt den ersten StackNode des Stacks zurueck
//}
return NULL; return NULL;
} }