Vous êtes sur la page 1sur 11

Chapitre IV - Structures arborescentes

4.4 Le tas (heap) ou tas binaire


4.4.1 Définitions
Un tas est un arbre binaire quasi-parfait grignoté par la droite et ordonné en tas.
Un arbre est ordonné en tas si ∀(x, y) nœuds de l’arbre avec y fils de x on a :
 Soit clé (x) ≥ clé (y) on parlera dans ce cas de tas max ou (tas maximier)
 Soit clé (x) ≤ clé (y) on parlera dans ce cas de tas min ou (tas minimier)
Exemple :

Arbre binaire
quasi-parfait
Grignoté à droite

 Tous les niveaux de la racine jusqu’à l’avant dernier niveau doivent être remplis ;
 De plus les feuilles doivent être calées à gauche (tassées à gauche)

4.4.2 Représentation
On peut représenter un tas par un vecteur en parcourant le tas (arbre) en largeur.
 Si le vecteur commence par l’indice 0 :
 Le père d’un nœud en position i aura pour position (i-1) /2
 Les enfants d’un nœud en position i seront en positions 2i+1 et 2i+2
Père ← nœud → les fils
(i-1/2) i 2i+1 et 2i+2

 Si le vecteur commence par l’indice 1 :

 Le père d’un nœud en position i aura pour position i /2


 Les enfants d’un nœud en position i seront en positions 2i et 2i+1
Père ← nœud → les fils
i/2 i 2i et 2i+1

15
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

Soit le tas max représenté comme suit :

0 12

1 9 2 8

3 2 7
4 5 5

Ce tas sera stocké dans le vecteur T comme suit :


0 1 2 3 4 5 Indicé à partir de 0
12 9 8 2 7 5
1 2 3 4 5 6 Indicé à partir de 1

Contre exemples :
Cet arbre n’est pas calé à gauche,
12
sa représentation possède un vide à la case 3.
Ce n’est donc pas un tas.
9 6

12 9 6 / 7 2 5
7 2 5
0 1 2 3 4 5 6

12 Cet arbre n’est pas un tas


Car le nœud 10 ne doit pas être le fils du noeud 9
9 6

1 7

16
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

4.4.3 Opérations habituelles sur le tas :


1- Ajouter un élément (insertion)
2- Construire un tas
3- Consulter le sommet
4- Retirer un élément
5- Tamiser : restructurer le tas jusqu’à ce qu’il retrouve ses propriétés de tas
6- Tri par tas.

1- Insertion

L’insertion après le dernier élément ne préserve pas nécessairement la propriété du tas.


Ainsi, après l’insertion on échange (permute) l’élément inséré avec son parent tant que ce
dernier (parent) est supérieur (tas max) ou inferieur (tas min) aux éléments insérés.
Exemple : insertion de la clé 3 dans le tas min suivant ;

5
5

20 47
20 47

47 21
47 21 3

5 3

20 3 20 5

47 21 47 21
47 47

17
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

2- Suppression

La suppression d’un élément dans un tas ne peut se faire que si on connait sa place dans le tas.
La suppression peut provoquer le non-respect de la propriété du tas.
La solution :
Permuter l’élément à supprimer avec celui de la dernière place dans le tas
Supprimer l’element de la dernière place
Mais ! Comme pour l’insertion
Si l’élément obtenu par permutation est inférieur (tas min) ou supérieur (tas max) à
son parent alors permuter avec son parent sinon permuter avec le plus petit (pour tas
min) ou plus grand (pour tas max) de ses fils (à respecter jusqu’à ce que l’arbre
devienne tas).
Exemple : soit à supprimer la clé 20 du tas min suivant

20 Tamiser
Supprimer 20 47

40 50 40 50

42 45 55 58 42 45 58
55

48 49 46 47 48 49 46

40 40
Tamiser

47 50 42 50

42 45 55 58 47 45 55 58

48 49 46 48 49 46

18
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

Supprimer la clé 40 dans le tas suivant :

20 20

40 50 47 50

42 45 55 58 42 45 58
55

48 49 46 47 48 49 46

20

42 50

47 45 55 58

48 49 46

3- Création d’un tas

 Fixer s’il est max ou min


 Choisir l’approche de construction
- Directe ou
- En deux temps 1ere étape construire AB tassé à gauche
2eme étape tamisation de AB obtenu

19
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

Exemple 1 : Construction d’un tas max en utilisant la méthode directe avec les clés :
20, 10, 31, 7, 1, 20, 8, 19.

Insérer 20, 10, 31 20 tamiser insérer 7 et 1


31

10 31 10 20

31
31
Insérer 20, 8 Insérer 19
10 20
10 20

7 1
7 1 20 8

31
31

10 20 tamiser tamiser
10 20

7 1 20 8
19 1 20 8

19
7

31

19 20

10 1 20 8

20
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

Exemple 2 : Construction d’un tas max en utilisant la manière indirecte avec les clés :
2, 8, 1, 9, 8, 8, 6, 5, 3, 4.
1ere étape : arbre quasi-parfait grignoté par la droite

8 1

9 8 8 6

5 3 4

2eme étape : tamisation


Principe :
 Partir des nœuds internes du bas et si une permutation s’impose elle se fera
entre (le nœud, le fils gauche, le fils droit).
 À partir de la racine, on descend en respectant le principe de la permutation
(nœud, fils gauche, fils droit)
 Si le fils gauche = fils droit alors permuter avec fils gauche
Ainsi pour notre arbre ci-dessus on aura :

2 2

8 1 8 1

9 8 8 6 9 8 8 6

5 3 4 5 3 4

21
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

2
2

8 8 8 8

9 8 1 6 9 8 1 6

5 3 4 5 3 4

2 9
On redescend avec le

9 Le même principe 2 8
8

8 8 1 6 8 8 1 6

5 3 4 5 3 4

9
9

8 8
8 8

5 8 1 6
2 8 1 6

2 3 4
5 3 4

22
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

4- Tri par tas (heap sort) Williams 1961

La structure de tas, permet d’écrire un algorithme de tri en place optimal en temps, c'est-à-dire
en O(n log n). Le principe est de prendre un tableau en entrée, d’y former un tas (O(n)) et de
retirer un a un les maximums successifs en les rangeant à la fin du tableau (n fois O(log n)).
Soit à trier le tableau [2 8 1 9 8 8 6 5 3 4].
1- On forme le tableau comme un arbre quasi-parfait :

2- On forme le tas en faisant comme précédemment d’une manière indirecte

23
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

On obtient le tas suivant :

Le tableau associé est donc maintenant : [9 8 8 5 8 1 6 2 3 4 ].

3- On extrait l’élément maximum (à la racine) en l’échangeant avec le dernier élément du


tableau (la dernière feuille) ; on sort ce dernier élément de l’arbre ; et on reforme le
tas.

Le tableau est maintenant : [ 8 8 8 5 4 1 6 2 3 9] (en grisé, les éléments encore dans


l’arbre).
On recommence avec le nouveau maximum :

24
Pr A . Ait el hadj & F. Souam
Chapitre IV - Structures arborescentes

jusqu’au dernier élément

4. On obtient le tableau trié [1 2 3 4 5 6 8 8 8 9 ].

25
Pr A . Ait el hadj & F. Souam

Vous aimerez peut-être aussi