Vous êtes sur la page 1sur 4

L2 (Section B) Département Informatique, Faculté des Sciences, USDB 2014-2015

Examen d’Algorithmique
Algorithmique et de Structures de Données 2

Durée 1.5 H

Documents Interdits

Exercice 1 (0.5
0.5 + 0.75 + 0.75 + 1 = 3 points) : Arbre m-aire
aire

Soit l’arbre m-aire d’ordre 4:

Cet arbre est défini par la structure de données


donn et le modèle suivants:

Structure de données Modèle


TYPE Tnoeudmaire = STRUCTURE Fonction Info (AR :* Tnoeudmaire) : caractère
Info : caractère Fonction Fils (AR :* Tnoeudmaire, i : entier) : *Tnoeudmaire
Degré : 0 .. 4
Fonction Degré (AR :* TnoeudAVL) : entier
TabFils : Tableau [0 .. 3] de *
Tnoeudmaire Procédure Aff_info (Var AR :* TnoeudAVL, x :caractère)
FIN Procédure Aff_Fils (Var AR :* Tnoeudmaire, i : entier, P :*
VAR AR : * TnoeudAVL Tnoeudmaire)
Procédure Aff_Degré (Var AR :* Tnoeudmaire, x :entier)
Procédure CréerNoeudmaire(Var AR : *Tnoeudmaire, x :caractère)
Procedure LibérerNoeudmaire (Var AR :*Tnoeudmaire)

1. Donner l’implémentation de la fonction Fils (AR : *Tnoeudmaire, int i) : *Tnoeudmaire qui


permet de retourner le ième fils.
2. Donner le résultat du parcours préordre [AR, F0, F1, F2, F3] de l’arbre ci-dessus.
ci
3. Ecrire la procédure récursive Parcours_préordre (AR : *Tnoeudmaire) qui permet d’afficher le
résultat du parcours préordre.
4. Transformer l’arbre ci-dessus
dessus en un arbre binaire.

Mme Aroussi Page 1


L2 (Section B) Département Informatique, Faculté des Sciences, USDB 2014-2015

Exercice 2 ((0.5+0.25+0.5) + 0.75+ 2.5 + 0.5 = 5 points) : Arbre TAS

Soit TS un arbre TAS défini par la structure de données et le modèle suivants:

Structure de données Modèle


TYPE TAS = STRUCTURE Fonction Info (TS : TAS, i : entier) : entier
Tab : tableau [0.. 100] d’entier Fonction FG (TS : TAS, i : entier) : entier
Dernier : entier
Fonction FD (TS : TAS, i : entier) : entier
FIN
VAR TS : TAS Fonction Père (TS : TAS, i : entier) : entier
Procédure Aff_info (Var TS : TAS, i :entier, x :entier)
Procédure CréerNoeudTAS(Var TS : TAS, x :entier)
Procedure LibérerNoeudTAS (Var TS : TAS,)

1. Sachant que le parcours en largeur de l’arbre donne : 40, 35, 26, 15, 19, 17, 20, 1, 13, 14, 12, 11, 8
a. Donner la représentation graphique de cet arbre.
b. Préciser son type.
c. Supprimer la racine de l’arbre obtenu en détaillant les étapes nécessaires.

En utilisant le type du TAS de la question 1 ainsi que le modèle donné ci dessus,

2. Ecrire la fonction MoyenneTAS (TS :TAS) : réel qui permet de calculer la moyenne des valeurs
contenues dans TS. Dans le cas où l’arbre est vide, la fonction retourne 0 ;
3. Ecrire la procédure SupprimerRacineTAS (Var TS : TAS) qui permet de supprimer la racine de
l’arbre TS. Pour cette procédure, vous pouvez utiliser directement la procédure Permuter (Var
TS : TAS, int i, int j) qui permet de permuter la valeur des deux nœuds i et j.
4. Ecrire la procédure Afficher_Valeurs_Triées (TS : TAS) qui permet d’afficher la liste triée (ordre
décroissant) des valeurs contenus dans l’arbre TS. Pour cette procédure, vous pouvez utiliser la
procédure de la question 3.

Mme Aroussi Page 2


L2 (Section B) Département Informatique, Faculté des Sciences, USDB 2014-2015

Exercice 3 (1.5
1.5 + 1.5 + 2 + 3 = 8 points) : Arbre AVL
Soit R un arbre AVL défini par la structure de données et le modèle suivants:
suivant
Structure de données Modèle
TYPE TnoeudAVL = STRUCTURE Fonction Info (R :* TnoeudAVL) : entier
Info : entier Fonction FG (R :* TnoeudAVL) : *TnoeudAVL
Bal : entier
Fonction FD (R :* TnoeudAVL) : *TnoeudAVL
FG : * TnoeudAVL
FD : * TnoeudAVL Fonction Bal (R :* TnoeudAVL) : entier
FIN Procédure Aff_info (Var R :* TnoeudAVL, x :entier)
VAR R : * TnoeudAVL
Procédure Aff_FG (Var R :* TnoeudAVL, P :* TnoeudAVL)
Procédure Aff_FG (Var R :* TnoeudAVL, P :* TnoeudAVL)
Procédure Aff_Bal (Var R :* TnoeudAVL, x :entier)
Procédure CréerNoeudAVL(Var R : *TnoeudAVL, x :entier)
Procedure LibérerNoeudAVL (Var R :*TnoeudAVL)

En utilisant le modèle de l’AVL, développer:


évelopper:

1. La fonction EstEquilibré (R :*TnoeudAVL)


:*Tnoeud ) : booléen qui permet de tester si « R » est équilibré.
2. La procédure
rocédure RechercheravecChemin (R :*TnoeudAVL, x : entier, var P: *TnoeudAVL, var
chemin : Pile) qui permet de rechercher la valeur « x » dans « R », de retourner le pointeur « P »
de la valeur x si elle existe (NULL
NULL sinon) et de retourner également le chemin parcouru dans une
pile. Par exemple,, la recherche de 27 et de 70 dans l’arbre ci-dessous donne les résultats suivants:

3. La procédure itérative InsererAVL (Var R :TnoeudAVL, x : entier) qui permet d’insérer la valeur
va
« x » dans l’arbre « R » et de le garder équilibrer.
4. La procédure itérative SupprimerAVL (Var R :TnoeudAVL, x : entier) qui permet de supprimer
la valeur « x » de l’arbre « R » et de le garder équilibrer.

Mme Aroussi Page 3


L2 (Section B) Département Informatique, Faculté des Sciences, USDB 2014-2015
INDICATIONS : Vous pouvez utiliser directement :

- La procédure MAJ_Bal (Var R : TnoeudAVL ) qui permet de calculer la balance de nœud R.


- La fonction Réequilibrer (R : TnoeudAVL) qui permet de rééquilibrer l’arbre A
- Le modèle de la pile dynamique suivant: CreerPile (Var P : Pile), , FilePide(P : File) : booléen,
Empiler (Var P : Pile, R : *TnoeudAVL) et Depiler (Var P : Pile, Var R :*TnoeudAVL)
- La fonction SommetPile (P :Pile) : *TnoeudAVL qui permet de retourner le sommet (ou la tête)
de la pile (Null dans le cas où la pile est vide).
- La procédure Chaîner (Var R: *TnoeudAVL , PèreQ: *TnoeudAVL, FilsQ: *TnoeudAVL, x: entier)
qui permet de chaîne le père de Q (PèreQ) avec le Fil de Q (FilesQ) selon la valeur de x.

Exercice 4 (1 + 2 + 1 = 4 points) : Hachage Statique


Soit E = {a, b, c, d, e, f, g, j, k} un ensemble d’enregistrement. On veut insérer ces enregistrements dans
une table de hachage de 10 cases.
enregistrement (x) a b c d e f g j k
h(x) 2 4 2 3 5 3 9 2 8
1. Définir la structure de la table de hachage dans le cas des méthodes de résolution de collisions
suivantes : Essai linéaire et Chaînage séparée.
2. Pour chacune de ces méthodes, donner l’évolution de la table de hachage correspondant à
l’insertion de l’ensemble des valeurs E.
3. Donner les états successifs de la table de hachage après la suppression de a et j (dans cet ordre)
dans le cas de l’essai linéaire.

Bon Courage

Mme Aroussi Page 4

Vous aimerez peut-être aussi