Dus ik heb het lezen via de K & R C boek en heb een vraag .. in de 6e hoofdstuk over de structuren op pagina 140-141, is er code die er zo uitziet (ik nam een aantal van de meer irrelevante delen)
/*
the program loops through a tree looking for some word
if it finds the word itll incremenet the count by 1
if it doesnt itll add a new node
*/
struct node {
char *word;
int count;
struct node *left;
struct node *right;
}
main() {
struct node *root;
char word[1000];
root = NULL;
while(getword(word, MAXWORD) != EOF) /* getword just grabs 1 word at a time from a file of words */
if(isalpha(word[0])) /* isalpha checks to see if it is a valid word */
root = addNode(root, word);
treeprint(root); /* prints the tree */
return 0;
}
struct node *addNode(struct node *p, char *w) {
int cond;
if(p == NULL) {
p = malloc(sizeof(struct node)); /* allocates memory for the new node */
p -> word = strdup(w);
p -> count = 1;
p -> left = p -> right = NULL;
}
else if ((cond = strcmp(w, p -> word)) == 0)
p -> count++;
else if(cond < 0)
p -> left = addNode(p -> left, w);
else
p -> right = addNode(p -> right, w);
return p;
}
En mijn verwarring is in de main () functie bij root = AddNode (root, woord)
Als AddNode een pointer naar de nieuw toegevoegde knooppunt (of naar het knooppunt dat woord is als het al int hij boom), zou dat niet verliezen alle gegevens boven de boom? Moet blijven als de wortel van de boom niet te roeien?
Bedankt!













