ajout de tous les cours et TP préparés cet été

This commit is contained in:
2026-01-17 23:10:49 +01:00
parent ed9415bc81
commit 301cf5a98f
125 changed files with 21614 additions and 542 deletions

View File

@@ -8,7 +8,7 @@
### Définition:
Un arbre **binaire** est un arbre de degré 2 (dont lesnoeuds sont de degré 2 au plus).
Un arbre **binaire** est un arbre de degré 2 (dont les noeuds sont de degré 2 au plus).
Les enfants d'un noeud sont lus de **gauche à droite** et sont appelés **fils gauche** et **fils droit**.
@@ -72,30 +72,16 @@ Il possède 3 niveaux, sa hauteur ou profondeur est donc de 2. La taille du tabl
4. Voici un tableau représentant un arbre binaire:
```python
['*','-',5,2,6,None,None,None,None,None,None,None,None,None,None]
```
Le dessiner. Que peut-il représenter ?
```python
```
```python
```
```python
```
```python
```
> Voici un code python Python qui crée la liste représentant l'arbre de l'exercice 2
@@ -152,53 +138,13 @@ print(arbre)
**<u>Inversement, pour trouver le parent d'un noeud, il faut vérifier : i - 1 //2</u>**
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
---------
## Une seconde façon de faire...
Comme vous l'avez sans doute constaté, il est assez fastidieux de représenter un arbre avec un unique tableau surtout pour un arbre très profond.
L'idée est de représenter l'arbre ave cun tableau contenant des tableaux
L'idée est de représenter l'arbre avec un tableau contenant des tableaux
![fig20.png](assets/fig20.png)
@@ -251,52 +197,14 @@ print(arbre1)
### Exercice :
Ecrire toutes les fonctions de l'exercice 3 dans le cas de cette implémentation de l'arbre.
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
```python
```
--------
Nous allons maintenant nous intéresser à la hauteur de l'arbre, ainsi qu'aux différentes façons de le parcourir:
* Le parcours en largeur
* Le parcours en profondeur (parcours fixe, parcours infixe et parcours suffixe).
* Le parcours en profondeur (parcours préfixe, parcours infixe et parcours suffixe).
**Calcul de la hauteur de l'arbre:**
L'idée ets la suivante:
L'idée est la suivante:
* Si l'arbre est vide, la hauteur vaut -1
* Sinon la hauteur vaut 1 auquel il faut ajouter le maximum entre les hauteurs des sous arbres gauche et droit.
* Ces sous-arbres sont eux même des arbres dont il faut calculer la hauteur.
@@ -318,7 +226,7 @@ Voici l'algorithme:
## Les parcours
**Le parcours en largeur:**
Le parcours en largeur d'un arbre consiste à partir de la racine. On visite ensuite son fils gauche puis sont fils droit, puis le fils gauche du fils gauche etc... Comme le montre le schéma ci-dessous:
Le parcours en largeur d'un arbre consiste à partir de la racine. On visite ensuite son fils gauche puis son fils droit, puis le fils gauche du fils gauche etc... Comme le montre le schéma ci-dessous:
![fig23.png](assets/fig23.png)
@@ -344,14 +252,6 @@ Voici l'algorithme:
2. Implémenter alors cette fonction et l'essayer sur l'arbre précédent.
```python
```
```python
```
**Les parcours en profondeur**
On se balade autour de l'arbre en suivant les pointillés
@@ -374,8 +274,8 @@ Dans le schéma ci-dessus, on a rajouté des "noeuds fantômes" pour montrer que
* une fois par en dessous
* une fois par la droite
### Definition:
Dans un parcours **prefixe**, on liste le noeud la première fois qu'on le rencontre.
### Définition:
Dans un parcours **préfixe**, on liste le noeud la première fois qu'on le rencontre.
### Exercice
@@ -429,9 +329,6 @@ Nous allons créer une classe **Noeud** dont les attributs d'instances seront:
7. Transformer alors vos fonctions en méthodes de la classe Noeud
```python
```
-------