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
Nonesi 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
valeurpourra être de tout type (cela dépendra de l'exercice), c'est l'étiquette portée par la racine.gauchedésignera son sous-arbre à gauche, ce sera donc ou bienNoneou bien une instance deNoeud.droitedésignera son sous-arbre à droite, ce sera donc ou bienNoneou bien une instance deNoeud.
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 binairesab_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 avecprint(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.
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 !
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)