Combinaisons de listes par récursivité
Bonjour tout le monde,
Je souhaite réaliser les combinaisons de n listes de tailles différentes (le nombre de caractères par combinaison est égal à n aussi), par exemple si pour n=3 j'ai les listes suivantes:
l1={a, b, c} ; l2={c, d} et l3={f, j}
Je voudrais pouvoir afficher:
acf
acj
adf
adj
bcf
bcj
bdf
bdj
ccf
ccj
cdf
cdj
Vous me direz j'imbrique 3 for et le tour est joué! Cependant je veux que ma fonction puisse faire cela pour n ensembles donnés en pamaramètre: il faut donc que je fasse un appel récursif, mais je n'arrive pas à trouver comment faire...:?
Voici un exemple réalisé en imbriquant des boucles for (itératif) pour n=3:
Code:
1 2 3 4 5 6 7 8 9
|
for(i=0; i<liste[0]->size; i++)
for(j=0; j<liste[1]->size; j++)
for(k=0; k<liste[2]->size; k++)
{
printf("%c", listIth(liste[0], i+1) );
printf("%c", listIth(liste[1], j+1) );
printf("%c", listIth(liste[2], k+1) );
} |
PS: liste[] est un tableau de n listes (il a donc une taille n)
char lislth(List list, int i) est une fonction qui me retourne la ième valeur de la liste
Merci d'avance ;)