Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
les_programmes_a_connaitre:algorithmique_term:taille_arbre [2021/01/19 10:32] mc created |
les_programmes_a_connaitre:algorithmique_term:taille_arbre [2023/01/04 11:44] (Version actuelle) hk [Calculer la hauteur et la taille d'un arbre] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Calculer la hauteur et la taille d'un arbre ====== | + | ====== Calculer la hauteur et la taille d'un arbre ====== |
+ | ====Hauteur d'un arbre :==== | ||
+ | //rappel :// profondeur maximale d'un arbre. | ||
+ | Programme permettant de calculer la hauteur d'un arbre : | ||
+ | <code python> | ||
+ | #---Classe permettant l' | ||
+ | class ArbreBinaire: | ||
+ | def __init__(self, | ||
+ | self.valeur = valeur | ||
+ | self.enfant_gauche = None | ||
+ | self.enfant_droit = None | ||
+ | def insert_gauche(self, | ||
+ | if self.enfant_gauche == None: | ||
+ | | ||
+ | else: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | def insert_droit(self, | ||
+ | if self.enfant_droit == None: | ||
+ | | ||
+ | else: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | def get_valeur(self): | ||
+ | return self.valeur | ||
+ | |||
+ | def get_gauche(self): | ||
+ | return self.enfant_gauche | ||
+ | |||
+ | def get_droit(self): | ||
+ | return self.enfant_droit | ||
+ | |||
+ | # | ||
+ | |||
+ | # | ||
+ | racine = ArbreBinaire(' | ||
+ | racine.insert_gauche(' | ||
+ | racine.insert_droit(' | ||
+ | |||
+ | b_node = racine.get_gauche() | ||
+ | b_node.insert_gauche(' | ||
+ | b_node.insert_droit(' | ||
+ | |||
+ | f_node = racine.get_droit() | ||
+ | f_node.insert_gauche(' | ||
+ | f_node.insert_droit(' | ||
+ | |||
+ | c_node = b_node.get_gauche() | ||
+ | c_node.insert_droit(' | ||
+ | |||
+ | g_node = f_node.get_gauche() | ||
+ | g_node.insert_gauche(' | ||
+ | |||
+ | h_node = f_node.get_droit() | ||
+ | h_node.insert_droit(' | ||
+ | # | ||
+ | T = racine | ||
+ | |||
+ | """ | ||
+ | Objectif : définir la hauteur d'un arbre binaire | ||
+ | Entrée : T->noeud racine | ||
+ | Sortie: hauteur de l' | ||
+ | """ | ||
+ | def hauteur(T): | ||
+ | if T!=None: | ||
+ | return 1+(max(hauteur(T.get_gauche()), | ||
+ | else: | ||
+ | return 0 | ||
+ | </ | ||
+ | |||
+ | ====Taille d'un arbre :==== | ||
+ | //rappel :// nombre de nœuds composant l' | ||
+ | |||
+ | Algorithme permettant de calculer la taille de l' | ||
+ | |||
+ | <code python> | ||
+ | VARIABLE | ||
+ | T : arbre | ||
+ | x : noeud | ||
+ | |||
+ | DEBUT | ||
+ | #---Classe permettant l' | ||
+ | class ArbreBinaire: | ||
+ | def __init__(self, | ||
+ | self.valeur = valeur | ||
+ | self.enfant_gauche = None | ||
+ | self.enfant_droit = None | ||
+ | |||
+ | def insert_gauche(self, | ||
+ | if self.enfant_gauche == None: | ||
+ | | ||
+ | else: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | def insert_droit(self, | ||
+ | if self.enfant_droit == None: | ||
+ | | ||
+ | else: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | def get_valeur(self): | ||
+ | return self.valeur | ||
+ | |||
+ | def get_gauche(self): | ||
+ | return self.enfant_gauche | ||
+ | |||
+ | def get_droit(self): | ||
+ | return self.enfant_droit | ||
+ | |||
+ | # | ||
+ | |||
+ | # | ||
+ | racine = ArbreBinaire(' | ||
+ | racine.insert_gauche(' | ||
+ | racine.insert_droit(' | ||
+ | |||
+ | b_node = racine.get_gauche() | ||
+ | b_node.insert_gauche(' | ||
+ | b_node.insert_droit(' | ||
+ | |||
+ | f_node = racine.get_droit() | ||
+ | f_node.insert_gauche(' | ||
+ | f_node.insert_droit(' | ||
+ | |||
+ | c_node = b_node.get_gauche() | ||
+ | c_node.insert_droit(' | ||
+ | |||
+ | g_node = f_node.get_gauche() | ||
+ | g_node.insert_gauche(' | ||
+ | |||
+ | h_node = f_node.get_droit() | ||
+ | h_node.insert_droit(' | ||
+ | # | ||
+ | T = racine | ||
+ | |||
+ | """ | ||
+ | Objectif : définir la taille d'un arbre binaire | ||
+ | Entrée : T->noeud racine | ||
+ | Sortie: taille de l' | ||
+ | """ | ||
+ | def taille(T): | ||
+ | if T != None: | ||
+ | return 1+taille(T.get_gauche())+taille(T.get_droit()) | ||
+ | else: | ||
+ | return 0 | ||
+ | </ | ||
+ | |||
+ | ===En lien avec cette page : === | ||
+ | [[les_fiches_revisions: | ||
+ | |||
+ | [[les_fiches_revisions: |