Compilation java, Maximum() sur liste chaînée
:DBonjour à tous, j'aurais besoin d'aide sur la compréhension de la compilation d'un petit script java, l'idée est de me retourner le max d'une liste chaînée par récursion.
Comment ( et dans quel ordre) va être compilé ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public int Maximum(Cellule c){
if (c.suivant != null){
int max = Maximum(c.suivant);
if(max < c.valeur){
max = c.valeur;
}
return c.valeur;
}
else
return c.valeur;
} |
Je ne comprends pas en ce sens :
selon moi, à chaque appel de Maximum() on recommence le code au départ sans passer au if, ce qui fait donc tourner en rond jusqu'à la fin de la liste où au final on retourne c.valeur par défaut.
pour appuyer mon code, voici le code de ma liste chaînée :
Code:
1 2 3 4 5 6 7 8 9 10 11
| public class Liste_chaînée {
public Cellule tete;
//constructeur
Liste_chaînée(){
tete = null;
} |
et d'une cellule :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class Cellule {
public int valeur;
public Cellule suivant;
//constructeur
Cellule(int _valeur){
valeur = _valeur;
suivant = null;
}
} |
je vous remercie d'avance pour votre temps et votre lecture