L3 Informatique Année 2016-2017
AMD5
TD no4 : révision sur les files de priorité et l’algorithme
de Dijkstra
Exercice 1 :
1. Dessiner tous les tas-max (priorité “>”) possibles avec les éléments suivants : 1,4,7,9.
2. Même question, en considérant un tas-min (priorité “<”).
Exercice 2 :
Soit le tas-max suivant :
1. Y entasser l’élément 11.
2. En supprimer l’élément maximal.
16
14
8
2 4
7
1
10
9 3
Exercice 3 :
Un tas peut être efficacement représenté en utilisant un tableau, car c’est un arbre complet
(sauf éventuellement pour le nœud le plus profond et le plus à droite qui peut n’avoir qu’un
fils gauche) calé à gauche. On remplit le tableau de gauche à droite avec les clefs des nœuds
de profondeur 0,1, . . ., hpris de gauche à droite.
42
24
14
3 12
11
6 1
18
16
7
9
42 24 18 14 11 16 9 3 12 6 1 7
1. Soit un tas représenté sous forme de tableau. Si iest la position d’un nœud ayant un
fils droit et un fils gauche, quels sont les indices de ses fils ? Inversement, soit il’indice
d’un nœud autre que la racine. Quel est l’indice de son père ?
2. Le tableau 23 17 14 6 13 10 1 5 7 12 représente-t-il un tas ?
3. Comment se traduit la propriété de l’ordre sur les clefs des tas dans le cas des tableaux ?
4. Montrer qu’avec cette représentation, si nest le nombre de clés et si les indices des
tableaux commencent à 0, alors les feuilles sont les nœuds indexés par bn
2c,bn
2c+
1, . . . , n −1.
1