edit et corrections d'erreurs factuelles, de calculs et de mise en page

This commit is contained in:
2026-07-02 15:01:24 +02:00
parent 3067e1918e
commit 28d4a75c1b
32 changed files with 174 additions and 109 deletions

View File

@@ -14,10 +14,9 @@ Les enfants d'un noeud sont lus de **gauche à droite** et sont appelés **fils
![fig15.png](assets/fig15.png)
### Exercice 1:
### Exercice 1 :
Parmi les arbres du cours précédent, lesquels sont binaires ?
Réponse
### Remarque:
Les arbres binaires forment une structure de données qui peut se définir de façon récursive.
@@ -61,7 +60,7 @@ Il possède 3 niveaux, sa hauteur ou profondeur est donc de 2. La taille du tabl
*Il faut compter le nombre de noeuds, y compris les noeuds "fantômes" des feuilles.*
### Exercice :
### Exercice 2 :
1. Quelle est la taille du tableau qui permet de représenter cet arbre ?
![fig19.png](assets/fig19.png)
@@ -83,7 +82,7 @@ Le dessiner. Que peut-il représenter ?
> Voici un code python Python qui crée la liste représentant l'arbre de l'exercice 2
> Voici un code Python qui crée la liste représentant l'arbre de l'exercice 2
@@ -124,7 +123,7 @@ print(arbre)
['r', 'a', 'b', 'c', 'd', 'e', 'f', None, 'h', 'i', 'j', 'k', None, None, None, None, None, None, None, None, None, 'm', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]
### Exercice 3:
### Exercice 3 :
1. Ecrire une fonction qui retourne le parent d'un noeud s'il est dans l'arbre et None sinon.
2. Ecrire une fonction qui retourne **True** si l'arbre est vide
3. Ecrire une fonction qui retourne les enfants d'un noeud.
@@ -132,11 +131,13 @@ print(arbre)
5. Même question pour le fils droit
6. Ecrire une fonction qui renvoie **True** si le noeud est la racine de l'arbre
7. Ecrire une fonction qui renvoie **True** si le noeud est une feuille
8. Ecrire une fonction qui renvoie **true** si le noeud comporte un frère gauche ou droit.
8. Ecrire une fonction qui renvoie **True** si le noeud comporte un frère gauche ou droit.
**<u>Rappel : dans un tableau, si on note i l'indice d'un noeud, alors ses fils auront comme indice 2i +1 et 2i +2.</u>**
**<u>Inversement, pour trouver le parent d'un noeud, il faut vérifier : i - 1 //2</u>**
**<u>Inversement, pour trouver le parent d'un noeud, il faut calculer : (i - 1) // 2</u>**
*Attention aux parenthèses : en Python, `i - 1 // 2` vaut `i` (la division est prioritaire sur la soustraction) !*
---------
@@ -152,7 +153,7 @@ Cet arbre se représente par le tableau:
['r', ['a', [ ], [ ]], ['b', [ ], [ ]]]
### Exercice :
### Exercice 4 :
Ecrire le tableau représentant l'arbre ci-dessous et le stocker dans une variable **t**
![fig21.png](assets/fig21.png)
@@ -194,7 +195,7 @@ print(arbre1)
['r', ['a', ['c', [], ['h', [], []]], ['d', ['i', [], []], ['j', ['m', [], []], []]]], ['b', ['e', ['k', [], []], []], ['f', [], []]]]
### Exercice :
### Exercice 5 :
Ecrire toutes les fonctions de l'exercice 3 dans le cas de cette implémentation de l'arbre.
--------
@@ -215,7 +216,7 @@ Voici l'algorithme:
![fig22.png](assets/fig22.png)
### Exercice :
### Exercice 6 :
1. Ecrire cette fonction pour l'arbre précédent et vérifier que sa profondeur est de 4.
@@ -246,7 +247,7 @@ Voici l'algorithme:
![fig25.png](assets/fig25.png)
### Exercice 7
### Exercice 7 :
1. Rappeler les fonction permettant de définir une structure de file en python.
2. Implémenter alors cette fonction et l'essayer sur l'arbre précédent.
@@ -261,7 +262,7 @@ On se balade autour de l'arbre en suivant les pointillés
Voici un algorithme permettant de réaliser ce parcours:
![fig26.png](assets/fig26.png)
### Exercice
### Exercice 8 :
1. Proposer une fonction permettant de réaliser le parcours en profondeur d'un arbre
@@ -278,7 +279,7 @@ Dans le schéma ci-dessus, on a rajouté des "noeuds fantômes" pour montrer que
Dans un parcours **préfixe**, on liste le noeud la première fois qu'on le rencontre.
### Exercice
### Exercice 9 :
1. Ecrire les sommets dans l'ordre d'un parcours préfixe
@@ -290,7 +291,7 @@ Ce qui correspond à:
* On liste chaque noeud ayant un fils gauche la seconde fois qu'on le voit
* on liste chaque noeud sans fils gauche la première fois qu'on le voit
### Exercice
### Exercice 10 :
1. Ecrire les sommets dans l'ordre d'un parcours infixe
@@ -298,12 +299,12 @@ Ce qui correspond à:
### Definition:
Dans un parcours **suffixe**, on note le noeud la dernière fois qu'on le rencontre.
Exercice 11
### Exercice 11 :
1. Ecrire les sommets dans l'ordre d'un parcours suffixe
### Exercice
### Exercice 12 :
1. Voici trois algorithmes récursifs, dire pour chacun d'entre eux à quel parcours il correspond.
![fig27.png](assets/fig27.png)
![fig28.png](assets/fig28.png)
@@ -319,7 +320,7 @@ Nous allons créer une classe **Noeud** dont les attributs d'instances seront:
* son fils gauche (None par défaut) ou de type Noeud
* son fils droit (None par défaut) ou de type Noeud
### Exercice
### Exercice 13 :
1. Implémentez cette classe Noeud
2. Stocker l'arbre comme étant l'objet de type "Noeud" correspondant à la racine.
3. Ecrire une méthode estFeuille qui renvoie True si le noeud est une feuille et False sinon

View File

@@ -56,8 +56,10 @@ On parle également de **hauteur d'un arbre** :
- Elle correspond à la **profondeur maximale** dun nœud dans larbre, cest-à-dire le **plus grand nombre darêtes** depuis la racine jusquà une feuille.
- La hauteur est le nombre maximum de niveaux dans larbre, en partant de la racine jusquà la feuille la plus profonde.
- Selon les points de vue, la hauteur est parfois définie différemment :
- On peut considérer la hauteur d'un arbre vide à 0, soit à 1.
- Selon les conventions, la hauteur est parfois définie différemment :
- Si on compte le nombre d'**arêtes** du plus long chemin (convention utilisée dans ce cours), un arbre réduit à sa racine a une hauteur de 0, et l'arbre vide une hauteur de -1.
- Si on compte le nombre de **niveaux**, un arbre réduit à sa racine a une hauteur de 1, et l'arbre vide une hauteur de 0.
- Les sujets de bac précisent toujours la convention choisie : lisez bien l'énoncé !
**Question** : *Quelle est la hauteur de l'arbre du dessus ?*
@@ -89,7 +91,7 @@ Comprendre ces caractéristiques nous aidera à explorer comment manipuler effic
----------------
Auteurs : Florian Mathieu, Timothée Decoster, Enzo Frémaux
Auteurs : Florian Mathieu, Timothée Decoster, Enzo Frémeaux
Licence CC BY NC