content == null dans le container)Illustrer la différence entre un arbre vide et une feuille dans le container Tree<E>, en traçant la structure mémoire.
Tree() { content = null; }.Tree(E v, Tree<E> l, Tree<E> r) { content = new TreeContent<E>(v, l.content, r.content); }.new Tree<E>() (arbre vide) comme sous-arbres gauche et droit.Illustrer la différence entre un arbre vide et une feuille dans le container Tree<E>, en traçant la structure mémoire.
Un arbre vide est un container Tree<E> alloué avec content == null :
Tree<Integer> vide = new Tree<>();
// vide != null (objet alloué dans le tas)
// vide.content == null (représente l'arbre vide)
// vide.size() == 0, vide.depth() == 0
Une feuille est un container Tree<E> avec content != null, mais dont content.left et content.right sont null :
Tree<Integer> feuille = new Tree<>(42, new Tree<>(), new Tree<>());
// feuille.content != null (nœud avec value=42)
// feuille.content.left == null (sous-arbre gauche vide)
// feuille.content.right == null (sous-arbre droit vide)
// feuille.size() == 1, feuille.depth() == 1
Vérifier la convention dans les méthodes du container : this.content == null détecte l'arbre vide, pas la feuille :
boolean isEmpty() {
return this.content == null; // arbre vide : true, feuille : false
}
boolean isLeaf() {
return this.content != null
&& this.content.left == null
&& this.content.right == null; // nœud sans enfants
}
// vide.isEmpty() == true, vide.isLeaf() == false
// feuille.isEmpty() == false, feuille.isLeaf() == true
content == null dans le container identifie l'arbre vide ; une feuille a content != null mais content.left == null et content.right == null.
Les applications suivantes et la correction guidée sont réservées aux membres Premium
La méthode et sa première application corrigée restent en accès libre. Le Premium débloque les applications suivantes, l'aide IA et le suivi de ta maîtrise.