diff --git a/slides/cours_16.md b/slides/cours_16.md index 690217f66921e56f26f548fdacdb3ac32e38b8ca..3594721ed76bd2cef1a4eb3b81fe7dbddd00a09f 100644 --- a/slides/cours_16.md +++ b/slides/cours_16.md @@ -11,7 +11,7 @@ date: "2025-03-07" * Structure de données abstraite, * Chaque nœud a au plus deux enfants: gauche et droite, -* Chaque enfants est un arbre. +* Chaque enfant est un arbre. ## Comment représenteriez vous une telle structure? @@ -98,7 +98,7 @@ graph TD; ## Remarques -* L'arbre est **hétérogène**: le genre d'info est pas le même sur chaque nœud +* L'arbre est **hétérogène**: le genre d'info n'est pas le même sur chaque nœud (opérateur, opérande). * Les feuilles contiennent les opérandes. * Les nœuds internes contiennent les opérateurs. @@ -150,24 +150,24 @@ graph TD; # Le parcours infixe (G, R, D) * Gauche, Racine, Droite: - 1. On descend dans l'arbre de gauche tant qu'il est pas vide, - 2. On visite la racine du sous arbre, - 3. On descend dans le sous-arbre de droite (s'il est pas vide), + 1. On descend dans l'arbre de gauche tant qu'il n'est pas vide. + 2. On visite la racine du sous arbre. + 3. On descend dans le sous-arbre de droite (s'il n'est pas vide). 4. On recommence. . . . ## Incompréhensible? -* La récursivité c'est la vie. +* La récursivité, c'est la vie. ``` parcours_infixe(arbre a) - si est_pas_vide(gauche(a)) - parcours_infixe(gauche(a)) - visiter(A) - si est_pas_vide(droite(A)) - parcours_infixe(droite(A)) + si est_pas_vide(gauche(a)) + parcours_infixe(gauche(a)) + visiter(a) + si est_pas_vide(droite(a)) + parcours_infixe(droite(a)) ``` # Graphiquement (dessinons) @@ -194,11 +194,11 @@ graph TD; ``` parcours_infixe(arbre a) - si est_pas_vide(gauche(a)) - parcours_infixe(gauche(a)) - visiter(A) - si est_pas_vide(droite(A)) - parcours_infixe(droite(A)) + si est_pas_vide(gauche(a)) + parcours_infixe(gauche(a)) + visiter(a) + si est_pas_vide(droite(a)) + parcours_infixe(droite(a)) ``` :::: @@ -245,11 +245,11 @@ graph TD; ``` parcours_infixe(arbre a) - si est_pas_vide(gauche(a)) - parcours_infixe(gauche(a)) - visiter(A) - si est_pas_vide(droite(A)) - parcours_infixe(droite(A)) + si est_pas_vide(gauche(a)) + parcours_infixe(gauche(a)) + visiter(a) + si est_pas_vide(droite(a)) + parcours_infixe(droite(a)) ``` ## Remarque @@ -306,7 +306,7 @@ void tree_print(node *tree, int n) { ## OK, alors deux exercices: 1. Écrire le pseudo-code pour le parcours R, G, D (matrix). -2. Écrire le pseudo-code pour la parcours G, D, R (matrix), +2. Écrire le pseudo-code pour la parcours G, D, R (matrix). ## Rappel @@ -323,7 +323,7 @@ parcours_infixe(arbre a) \footnotesize -* Les deux parcours sont des modifications **triviales**[^2] de l'algorithme +* Les deux parcours sont des modifications **triviales** de l'algorithme infixe. ## Le parcours postfixe