per me ti conviene un array di liste o una matrice di adiacenza,
implementare un grafo insomma.
La funzione cosi ad occhio non vedo necessità di farla ricorsiva, ricorda che le funzoni ricorsive
non sono molto efficienti sebbene alle volte molto intuitive e facili da implementare.