glossaires:python:arbre
Arbre
Arbre binaire implémenté avec un dictionnaire {clef: [fils_gauche, fils_droit]}
On peut aussi représenter un arbre binaire en utilisant un dictionnaire où chaque clé est un nœud et la valeur associée est une liste contenant son fils gauche et son fils droit (None s'il n'y a pas de fils).
arbre = { 5: [3, 8], 3: [None, None], 8: [None, None] } def parcours_infixe(noeud, arbre): """ Objectif : Affiche les étiquettes de l'arbre en parcours infixe (gauche, racine, droite). Entrée : noeud : tout type ou None : la clé du nœud de départ du parcours arbre : dict : le dictionnaire représentant l'arbre binaire Sortie : """ if noeud is not None: #on ne parcourt que si le nœud existe fils_gauche, fils_droit = arbre[noeud] parcours_infixe(fils_gauche, arbre) print(noeud) parcours_infixe(fils_droit, arbre) parcours_infixe(5, arbre) #affiche 3, 5, 8
Arbre binaire implémenté avec une classe Noeud (attributs étiquette, gauche, droit)
En terminale On peut représenter un arbre binaire en créant une classe Noeud, où chaque nœud possède une étiquette (sa valeur) et deux fils : gauche et droit (qui valent None s'il n'y a pas de fils).
class Noeud: def __init__(self, etiquette, gauche=None, droit=None): """ Objectif : Crée un nœud d'arbre binaire. Entrée : etiquette : tout type : la valeur portée par le nœud gauche : Noeud ou None : le fils gauche du nœud droit : Noeud ou None : le fils droit du nœud Sortie : """ self.etiquette = etiquette self.gauche = gauche self.droit = droit #construction d'un petit arbre binaire arbre = Noeud(5, Noeud(3), Noeud(8)) def parcours_infixe(noeud): """ Objectif : Affiche les étiquettes de l'arbre en parcours infixe (gauche, racine, droite). Entrée : noeud : Noeud ou None : le nœud de départ du parcours Sortie : """ if noeud is not None: #on ne parcourt que si le nœud existe parcours_infixe(noeud.gauche) print(noeud.etiquette) parcours_infixe(noeud.droit) parcours_infixe(arbre) #affiche 3, 5, 8
glossaires/python/arbre.txt · Dernière modification : de loutrel
