Loading [MathJax]/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js

Arbre binaire - liste de listes

On représente l'arbre à l'aide d'un tableau de tableaux (pourrait choisir un tuple de tuples).

voir le cours ici

Le code Python ci-dessous, construit l’arbre

Entrée[17]:
['r', ['a', ['c', [], ['h', [], []]], ['d', ['i', [], []], ['j', ['m', [], []], []]]], ['b', ['e', ['k', [], []], []], ['f', [], []]]]

Hauteur de l'arbre

Définitions

Hauteur d’un noeud : la hauteur(ou profondeur ou niveau ) d’un noeud X est égale au nombre d’arêtes qu’il faut parcourir à partir de la racine pour aller jusqu’au noeud X.

La hauteur (ou profondeur) d’un arbre est égale à la profondeur du noeud le plus profond.

Voici l'algorithme du calcul de la hauteur :

Écrire la fonction hauteur

Entrée[18]:
Entrée[23]:
4

Les parcours

Le parcours en largeur

L’idée est la suivante: On utilise une File.

  • On met l’arbre dans la file.
  • Puis tant que la file n’est pas vide:
    • On défile la file.
    • On récupère sa racine.
    • On enfile son fils gauche s’il existe.
    • On enfile son fils droit s’il existe.

Écrire la fonction parcours_largeur

Entrée[20]:
Entrée[21]:
Entrée[22]:
['r', 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm']

Parcours en profondeur

Chaque sommet "est visité 3 fois" :

le parcours prefixe :

Fonction parcours_prefixe(arbre) Données :arbre binaire

  • Si L’arbre n’est pas vide alors:
    • Afficher :La racine de l’arbre
    • parcours_prefixe(sous-arbre gauche)
    • parcours_prefixe(sous-arbre droit)

le parcours infixe :

Fonction parcours_infixe(arbre) Données :arbre binaire

  • Si L’arbre n’est pas vide alors:
    • parcours_infixe(sous-arbre gauche)
    • Afficher :La racine de l’arbre
    • parcours_infixe(sous-arbre droit)

le parcours suffixe ou postfixe :

Fonction parcours_postfixe(arbre) Données :arbre binaire

  • Si L’arbre n’est pas vide alors:
    • parcours_postfixe(sous-arbre gauche)
    • parcours_postfixe(sous-arbre droit)
    • Afficher :La racine de l’arbre

Écrire les 3 fonctions

Entrée[ ]:
Entrée[24]:
r , a , c , h , d , i , j , m , b , e , k , f , 
Entrée[25]:
c, h, a, i, d, m, j, r, k, e, b, f, 
Entrée[26]:
h, c, i, m, j, d, a, k, e, f, b, r, 

Évaluer une expression arithmétique

L'expression $2+\dfrac{3}{4-7}$

Se représente avec l'arbre :

L'algorithme qui permet d'évaluer cette expressionn est :

Écrire la fonction evalue

Entrée[38]:
['+', [2, [], []], ['/', [3, [], []], ['-', [4, [], []], [7, [], []]]]]
Entrée[ ]:
Entrée[39]:
1.0
Entrée[ ]:
Chargement de Basthon...