Les listes chainées [Demande explication]
el karkouri
-
majon Messages postés 6 Statut Membre -
majon Messages postés 6 Statut Membre -
Bonjour,
Liste insert(Liste premier, Liste nouveau)
{ Liste p=premier;
if(!p) return nouveau;
else
{ if(p->val<nouveau->val)
{ p->suiv=insert(p->suiv,nouveau);
return p;
}
else
{ nouveau->suiv=p;
return nouveau;
}
}
}
voici ma fonction insertion qui marche parfaitement le probleme c'est que je ne comprend pas comment on arrive a y recuperer la liste entiere a la fin car je vois pas ou et le lien entre le debut de la liste et la case inserer
merci d'avance
Liste insert(Liste premier, Liste nouveau)
{ Liste p=premier;
if(!p) return nouveau;
else
{ if(p->val<nouveau->val)
{ p->suiv=insert(p->suiv,nouveau);
return p;
}
else
{ nouveau->suiv=p;
return nouveau;
}
}
}
voici ma fonction insertion qui marche parfaitement le probleme c'est que je ne comprend pas comment on arrive a y recuperer la liste entiere a la fin car je vois pas ou et le lien entre le debut de la liste et la case inserer
merci d'avance
A voir également:
- Les listes chainées [Demande explication]
- Chambre 1408 explication fin ✓ - Forum Cinéma / Télé
- Explication pour une curieuse ✓ - Forum Mozilla Firefox
- Listes déroulantes excel - Guide
- Tous les code possible de 0 à 9 (4 chiffres ) liste - Forum Programmation
- Paris multiple 2/6 explication - Forum Loisirs / Divertissements
1 réponse
Le procédé que tu décris montre que ta fonction donne toujours la tête de la liste chainée.
tu imagines une liste
deux cas :{},{1,3,5,...}
Le premier cas est simple (pas compliqué pour insérer)
Deuxième cas : si la liste est non vide
Tu t'interesse uniquement à la tête de liste (ligne 5: tu fais une comparaison)
Deux cas : ---on n'insert pas en tête, donc le probleme revient à inserer dans la liste {3,5,...}
de plus je sais que ma fonction renvoie la tête de cette nouvelle liste et donc j'ai juste à écrire que le suivant est cette nouvelle tête (ligne 6) et surtout je renvoie ensuite la tête de la liste (ligne 7)
---on insère en tete (facile)
tu imagines une liste
deux cas :{},{1,3,5,...}
Le premier cas est simple (pas compliqué pour insérer)
Deuxième cas : si la liste est non vide
Tu t'interesse uniquement à la tête de liste (ligne 5: tu fais une comparaison)
Deux cas : ---on n'insert pas en tête, donc le probleme revient à inserer dans la liste {3,5,...}
de plus je sais que ma fonction renvoie la tête de cette nouvelle liste et donc j'ai juste à écrire que le suivant est cette nouvelle tête (ligne 6) et surtout je renvoie ensuite la tête de la liste (ligne 7)
---on insère en tete (facile)