Aller au contenu

Rappel : 🪢 la classe Noeud

Modélisation avec une classe Noeud

Dans tous les exercices de cette section notée (🪢), un arbre binaire sera donné :

  • par None si c'est un arbre binaire vide,
  • sinon (il est non vide), par son nœud racine. Un nœud sera une instance de la classe suivante :
🐍 Script Python
class Noeud:
    def __init__(self, valeur, gauche=None, droite=None):
        self.valeur = valeur
        self.gauche = gauche
        self.droite = droite
  • valeur pourra être de tout type (cela dépendra de l'exercice), c'est l'étiquette portée par la racine.
  • gauche désignera son sous-arbre à gauche, ce sera donc ou bien None ou bien une instance de Noeud.
  • droite désignera son sous-arbre à droite, ce sera donc ou bien None ou bien une instance de Noeud.

⚠ Un arbre binaire n'est pas un nœud ! Un arbre binaire est soit vide, soit représenté par son nœud racine qui permet d'en déduire sa globalité.

Affichage d'un arbre

La classe Noeud sera accessible dans tous les exercices de cette section.

Trois méthodes spéciales de cette classe sont disponibles :

  • __eq__ : vous permettra de faire des tests d'égalité entre arbres binaires ab_1 == ab_2
  • __repr__ : vous permettra de retrouver la définition d'un arbre binaire directement en console avec >>> ab
  • __str__ : vous permettra d'afficher en mode texte un arbre binaire dans la console avec print(ab). Il suffit de tourner un peu la tête pour voir l'arbre binaire.
🐍 Console Python
>>> N_1 = Noeud(1)
>>> N_2 = Noeud(2)
>>> ab = Noeud(0, N_1, N_2)
>>> ab
Noeud(0, Noeud(1), Noeud(2))
>>> print(ab)
|-- :0
    |-- :2
    |-- :1
graph TB
    A(0)
    A --> B(1)
    A --> C(2)
    B --> D(" ")
    B --> E(" ")
    C --> F(" ")
    C --> G(" ")

Bac à sable

Un espace pour tester librement la classe Noeud avec la possibilité de dessiner un arbre binaire.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Coder, cliquer sur 'Lancer', patienter... votre image sera ici si vous en dessiner une !