Ho implementanto la funzione in oggetto nel seguente modo:
...però anzichè restituirmi la profondità mi restituisce il numero di valori inseriti. Ho controllato più volte e a livello logico mi sembra corretta, ma se inserisco i valoricodice://*level_count int level_count(t_tree tree) { if(tree->right==NULL && tree->left==NULL) return 1; else { if(tree->right!=NULL) { return 1+ level_count(tree->right); } else { if(tree->left!=NULL) { return 1+ level_count(tree->left); } else { int level_right=level_count(tree->right); int level_left=level_count(tree->left); if(level_right>level_left) return 1+level_right; else return 1+level_left; } } } }
13
18
8
9
14
6
che dovrebbero essere organizzati in un albero con profondità 3 (radice compresa) la funzione mi restituisce 6.
La funzione di inserimento nell'albero è la seguente:
Qualcuno mi da qualchd hint per trovare l'errore?codice://*tree_insert t_tree tree_insert(t_tree tree,t_info info) { if(tree==NULL) { t_node_t* new_node; new_node=node_t_create(info); return new_node; } else { if(info.n>tree->info.n) { tree->right=tree_insert(tree->right,info); return tree; } else { tree->left=tree_insert(tree->left,info); return tree; } } }

Rispondi quotando
Grazie
Era un'espressione di meraviglia, o qualcosa del genere 