Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

L2 Informatique Algorithmique et Structures de Données 2016-2017

Matricule Nom Prénom Groupe

Rattrapage (1h30mn)
Documents et Téléphones portables Interdits

Pour les exercices 01 et 02, vous devez répondre sur le sujet.

Exercice 01 (1.25 + 1.25 = 2.5 points):


1. Pour chaque description, donner le nom de l’algorithme de tri correspondant (par sélection, par
insertion, à bulles, par fusion, rapide, par ABR, par AVL, par TAS) et sa classe de complexité
(linéaire, quasi-linéaire, quadratique, logarithmique, polynomiale ou exponentielle)1 .
Nom Principe Classe de complexité
a. Inverser deux éléments successifs mal classés et
recommencer jusqu'à ce qu’on ne puisse plus
inverser.
b. Parcours en inordre un arbre binaire de recherche
équilibré.
c. Placer le plus petit élément au début, puis le second
plus petit élément à la deuxième position et ainsi de
suite jusqu'à ce que la liste soit entièrement triée.
d. Interclasser deux listes triées de sorte à ce que la liste
finale soit triée.
e. Insérer un élément dans une liste d'éléments déjà
triés.
2. Pour chaque description, donner le nom de structure séquentielle (LLC unidirectionnelle, LLC
bidirectionnelle, LLC circulaire, File, File prioritaire, Pile, Pile prioritaire) 2 .
Nom Description
a. C’est une collection d’éléments où le premier élément peut être n’importe
quel élément.
b. C’est une collection d’éléments dans laquelle l’ajout se fait dans la bonne
position.
c. C’est une collection d'éléments dans laquelle l’ajout se fait à la fin alors que
le retrait se fait au début.
d. C’est une collection d’éléments que l'on peut parcourir dans les deux sens

e. C’est une collection des éléments dans laquelle l’insertion (ajout) et la


suppression (retrait) se font à une seule et même extrémité

1 Le nom de l’algorithme et la classe de complexité devront être les deux justes pour avoir 0.25, sinon c’est un zéro
2
Une réponse fausse annule une réponse juste.
Page 1|6
L2 Informatique Algorithmique et Structures de Données 2016-2017
Exercice 02 (1 + 1 + 1 + 1 + 1.5 + 0.5 = 6 points):

1. Rappeler la fonction récursive « RechDichoTab » qui permet de faire la recherche dichotomique


dans un tableau ordonné d’entier de taille n. Cette fonction retourne l’indice de case qui contient
la valeur recherchée si cette dernière existe sinon elle retourne -1.
2. Ecrire la fonction récursive « RechSeqLLCbd » qui permet de faire la recherche séquentielle dans
une Liste Linéaire Chaînée Bidirectionnelle3 ordonnée. Cette fonction retourne l’adresse du
maillon qui contient la valeur recherchée.
3. En parcourant une seule fois la liste, écrire une fonction itérative « RechMilieuLLCbd » qui
permet de retourner l’adresse du maillon du milieu dans une LLC Bidirectionnelle.
4. Ecrire la fonction récursive « RechDichoLLCbd » qui permet de faire une recherche
dichotomique dans une LLC bidirectionnelle. Cette fonction retourne l’adresse du maillon qui
contient la valeur recherchée.
5. Calculer la complexité 4 des fonctions récursives « RechDichoTab », « RechSeqLLCbd » et
« RechDichoLLCbd ».
6. Que peut-on conclure concernant le meilleur principe de recherche dans une LLC ordonnée?
(justifier votre réponse)
Solution Exercice 2
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
3 La structure de données de LLC bidirectionnelle :
type MaillonBD = Structure type ListeBD= Structure
val : entier ; suiv, prec: * MaillonBD ; Tête, Queue: * MaillonBD ;
fin fin
4
Rappel sur les résolutions des récurrences :
THM1 : Si alors

THM2 : Si , alors

Page 2|6
L2 Informatique Algorithmique et Structures de Données 2016-2017
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Page 3|6
L2 Informatique Algorithmique et Structures de Données 2016-2017
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
___________________________________________________________ ______
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Page 4|6
Exercice 03 (1 + 0.75 + 1 + 0.25 = 3 points):
Soit « L » une Liste Linéaire Chaînée (LLC) unidirectionnelle contenant des entiers.

1. Rappeler la procédure itérative « SupprimerLLC » qui permet de supprimer une valeur « x » dans la
liste « L ».
2. Modifier la procédure précédente de telle sorte qu’elle permette de supprimer toutes les
occurrences d’une valeur « x » dans la liste « L ».
3. Ecrire la fonction récursive « SupprimerLLC_rec » qui permet de supprimer une valeur « x » dans la
liste « L ».
4. Modifier la fonction précédente de telle sorte qu’elle permette de supprimer tous les occurrences
d’une valeur « x » dans la liste « L ».
Exercice 04 ((0.25 + 0.25 + 0.25 + 0.5 + 1.5 = 2.75) + (0.5 + 1 + 1 + 1.5 = 4) + (1.5 + 0.25 = 1.75) = 8.5
points)
Soit l’arbre binaire « AS » ci-contre:
Vide Père FG Info FD
1. Cet arbre « AS » est présenté sous forme statique standard F 3 2 20 5
a. Dessiner l’arbre sous forme dynamique (graphique). V
b. Donner la structure de données de nœud dynamique F 0 -1 15 -1
F -1 0 55 4
c. Citer le nom des modules à ajouter au modèle de l’arbre F 3 6 75 8
dynamique afin d’accéder aux champs de la structure b. F 0 -1 45 -1
d. En utilisant le modèle de l’arbre dynamique, donner F 4 11 70 -1
l’implémentation du module « CreerNoeud » qui permet de V
F 4 -1 95 -1
créer et initialiser un nœud. V
e. Ecrire la fonction récursive qui permet de transformer V
l’arbre binaire de forme statique standard à la forme F 6 -1 65 12
F 11 -1 68 -1
dynamique.
V …… …. … ….

2. Soit « AD » l’arbre dynamique correspond à l’arbre « AS »


a. Quel est le type de l’arbre « AD » ? (justifier votre réponse)
b. Ecrire la fonction itérative « TypeAB» qui permet de retourner le type de l’arbre « AD » (0
: quelconque, 1 : ABR ou 2 : AVL) 5
c. Ecrire la fonction récursive « inserer » qui permet d’insérer une valeur donnée dans
l’arbre « AD ».
d. Ecrire un module « RechMaxNiv » qui permet de retourner le maximum du niveau i dans
l’arbre « AD »

5
Vous pouvez utiliser directement la fo nction « Profo ndeur » qui perm et de retourner la profondeur d’un arbre
Tant que (A ≠ Nil) faire
3. Soit la procédure ci-contre qui prend DTQ
Tant que (FD (A) ≠ Nil) faire
en paramètre d’entrée l’arbre « A »
DTQ
a. Dérouler cette procédure sur l’arbre « AD » B FD(A) ;
(préciser toutes les rotations) Aff_FD(A, FG(B));
Aff_Pere (B, Pere (A));
b. Que fait cette procédure ?
Aff_FG(B, A);
Aff_Pere (A, B)
A B
FTQ
A FG (A)
FTQ

Note aux étudiants qui ont été absents à l’interrogation 1 ou à l’interrogation 2

L’exercice 3 (sur 3 points) et la partie 2 de l’exercice 4 (sur 4 points) sont comptabilisés


comme étant la note de l’interrogation.

Les étudiants concernés par cette note doivent ramener la justification d’absence.

Bon courage

You might also like