PDA

Visualizza la versione completa : [c++] Alberi Generici


8madmax4
08-02-2005, 11:43
Devo scrivere una funzione int conta(Node* tree) che dato un albero generico memorizzato con la memorizzazione figlio-fratello, mi restituisce il numero di nodi aventi esattamente due figli. Come fare???




grazie :dh:

anx721
08-02-2005, 14:49
dammi l'esatta definizione del tipo Tree

8madmax4
08-02-2005, 16:31
Il tipo non tree ( solo il nome del puntatore) ,il tipo Node.


struct Node {
Infotype label;
Node* left, *right;}

left il puntatore al primo figlio del nodo
right il puntatore al primo fratello del nodo


Bisogan usare la ricorsione

anx721
08-02-2005, 16:45
Un nodo ha due figli se vaglono queste tre condizioni:

1 - nodo -> left != NULL (ha un primo figlio)
2 - nodo -> left -> right != NULL (ha un secondo figlio)
3 - nodo -> left -> right -> right == NULL (non ha un terzo figlio)




int nodi_con_2_figli(Node* tree){
if(tree == NULL)
return 0;
int count = 0;
if(tree->left != NULL)
if(tree->left-> right != NULL)
if(tree->left-> right->right == NULL)
count++;
count = count + nodi_con_2_figli(tree->left);
count = count + nodi_con_2_figli(tree->right);
return count;
}

Loading