diff --git a/bintree.c b/bintree.c index 5f0ffc4..50d6b9b 100644 --- a/bintree.c +++ b/bintree.c @@ -55,25 +55,31 @@ void *nextTreeData(TreeNode *root) printf("nextTreeData wurde gecallt!\n"); if(root) { - addTreeToStack(stackRoot, root); + stackRoot = addTreeToStack(stackRoot, root); printf("Baum wurde geladen!\n"); } - void *buffer = pop(stackRoot); + printf("\n\nstackRoot ist: %x\n\n", stackRoot); + StackNode *stackPuffer = pop(stackRoot); + if(!stackPuffer) + printf("Something went horriffically wrong! There is no Data!"); + void *buffer = (stackPuffer->stackData); printf("neuer Eintrag wurde geholt: %x\n", buffer); return buffer; } // Adds all Treenode-Datas of a root into a stack ordered from left to right -void addTreeToStack(StackNode *start, TreeNode *root) +StackNode *addTreeToStack(StackNode *start, TreeNode *root) { if(root->left) { - addTreeToStack(start, root->left); + start = addTreeToStack(start, root->left); } - push(start, root->data); + start = push(start, root->data); + printf("\na new Dataset has been added! new stackRoot: %x", start); if(root->right) { - addTreeToStack(start, root->right); + start = addTreeToStack(start, root->right); } + return start; } // Releases all memory resources (including data copies). diff --git a/bintree.h b/bintree.h index 9ece646..3bc2eb7 100644 --- a/bintree.h +++ b/bintree.h @@ -26,5 +26,5 @@ void clearTree(TreeNode *root); // Returns the number of entries in the tree given by root. unsigned int treeSize(const TreeNode *root); // Adds all Treenode-Datas of a root into a stack ordered from left to right -void addTreeToStack(StackNode *start, TreeNode *root); +StackNode *addTreeToStack(StackNode *start, TreeNode *root); #endif \ No newline at end of file diff --git a/highscores.txt b/highscores.txt index e69de29..67c6bd3 100644 --- a/highscores.txt +++ b/highscores.txt @@ -0,0 +1,10 @@ +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 +Ottp;4522070 diff --git a/stack.c b/stack.c index 61c4c01..831770a 100644 --- a/stack.c +++ b/stack.c @@ -1,4 +1,5 @@ #include +#include #include "stack.h" //TODO: grundlegende Stackfunktionen implementieren: @@ -33,14 +34,18 @@ StackNode *push(StackNode *stack, void *data) // freed by caller.) StackNode *pop(StackNode *stack) { + printf("A stack is being popped"); if(stack) { StackNode* temp = stack; stack = stack->below; temp->stackData = NULL; - free(temp); - temp = NULL; + //free(temp); + //temp = NULL; + printf("Stack returns stack at: %x\n", stack); return stack; - } else { + } + else + { return NULL; } }