Bonjour à 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 :
Je ne comprends pas en ce sens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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 :
et d'une cellule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
je vous remercie d'avance pour votre temps et votre lecture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Partager