Ciao a tutti..... stavo studiando su un libro la ricorsione legata agli alberi binari... ho questa funzione ma nn risco proprio a capire come funziona:

codice:
void inorder (BTREE root)
{
 if (root != NULL) {
     inorder (root ->left);
     printf("%c", root-> d);
     inorder(root -> right);
     }
}
e la struttura a cui si riferisce tale funzione è la seguente:

codice:
 typedef struct node{
     DATA C;
    struct node *left;
    struct node *right;
   }NODE;
typedef NODE *BTREE;
Qualcuno mi spiega come funziona quella funzione ricorsiva ?
Perchè da come l'ho capita io (cioè male.. ).. non riesco a capire come possa mai arrivare al printf...

grazie