Bonjour,

Imaginons que je veuille créer un arbre binaire en java à l'aide d'un tableau de noeud (chaque noeud est caractérisé par 3 champs : sa valeur, son fils gauche, son fils droit. Pour chaque noeud son fils droit porte une valeur plus grande que lui et son fils gauche une plus petite).

Donc je commence à créer un noeud comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class Noeud {
   int val,g,d ;
}
et maintenant je veux créer mon arbre binaire avec un tableau d'entier t
j'ai vu que pour créer mon arbre à partir de t je devais faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Noeud [] TabAbr = new Noeud[t.length]
donc là je crée un tableau TabAbr de noeud de même longueur que t. OK
ensuite la chose que je n'ai pas compris c'est qu'à chaque fois que je veux remplir un noeud il fallait que je rajoute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
TabAbr[i] = New Noeud();
la syntaxe étant la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
for(int i=0 ; i<t.length ; i++){
   TabAbr[i] = New Noeud();
   TabAbr[i].val = t[i];
}
mais par définition de TabAbr c'est un tableau de noeud, donc tous ses éléments sont des noeud, donc pourquoi faut-il à chaque fois mettre la ligne TabAbr[i] = New Noeud(); ???? alors que c'est la définition même de TabAbr.
De plus par défaut quelle sont les valeurs de TabAbr[i].g et TabAbr[i].d ? est-ce 0 ou est-ce vide ????

merci de vos réponses