Vous êtes sur la page 1sur 4

Ministère de l'Enseignement Supérieur Algorithmique et Structure de Données

et de la Recherche Scientifique Contrôle Continu


2 LMD informatique 2ème semestre
Faculté de Sciences 19 Juin 2011 - Durée = 1H30
Département d’Informatique Tous documents interdits

Nom : Prénom :
Exercice 1
1. « Elle facilite la résolution de certains problèmes répétitifs, en contre partie c’est une méthode
très gourmande en ressource mémoire. »
Ici nous décrivons la programmation…

Logique Itérative Parallèle Récursive


2. Soit les deux fonctions suivantes

Quel est le type de cette récursivité : (Choix multiple):

Simple Multiple Croisée Mutuelle


3. Finaliser la fonction suivante, qui permet de générer le factoriel d’un nombre entier positif ou
nul

4. Etant donnée la fonction suivante:


int Morris(int a, int b) {
if (a==0) return 1;
return Morris(a-1, Morris(a, b));
}

1
Pour Morris (1,0), combien de fois nous faisons appel à la fonction Morris ?

1 4 7 ∞
5. Donner la liste des résultats après exécution des lignes de codes suivantes :

{13.45, 4.56, 1.2, 67.4} {13.45, 4.56, 1.2} {13.45, 4.56} {13.45}

6. Donner une version itérative et une version récursive d’une fonction booléenne qui, étant
donné un tableau Tab répond vrai si le tableau est trié.
Fonction itérative Fonction récursive

2
Exercice 2 :
1. Dessinez l’arbre binaire de recherche (ABR) résultant des insertions successives (aux feuilles)
des éléments de clefs 10, 8, 6, 9, 12, 11, 14.

10 10
9 10

12 8 12
8 8 12
8 12

6 9
14 11 9 6
10 6 11 14 6 9 11 14

11 14

2. Que peut-on dire de l’arbre résultant ? (Choix multiple):


Binaire Entier Parfait ABR
3. générer les parcours en largeur, et en profondeur (préfix, infix et postfix) de cet arbre.

Largeur : Largeur : Largeur : Largeur :


10,8,12,6,9,11,14 10,8,12,6,9,11,14 10,8,6,9,12,11,14 6,8,9,10,11,12,14
Préfix : Préfix : Préfix : Préfix :
6,9,8,11,14,12,10 10,8,6,9,12,11,14 10,8,12,6,9,11,14 10,8,6,9,12,11,14
Infix : Infix : Infix : Infix :
10,8,6,9,12,11,14 6,8,9,10,11,12,14 6,9,8,11,14,12,10 6,9,8,11,14,12,10
Postfix : Postfix : Postfix : Postfix :
6,8,9,10,11,12,14 6,9,8,11,14,12,10 6,8,9,10,11,12,14 10,8,12,6,9,11,14
4. Voici une liste aléatoire de 10 éléments.

5 3 1 4 7 6 9 2 8 10
On s’intéresse aux arbres binaires de recherche.
Construire l’arbre binaire de recherche par adjonction des valeurs aux feuilles, dans l’ordre de la
liste.

5 7 6

3 7 4 6 9 7

1 4 6 9 3 1 9 2 2 8 1 4

2 8 10 5 8 10 10 3 5

3
5. Soit la procédure récursive suivante :
Procedure lecture (arbre)
Debut
si arbre non vide alors
ecrire (valeur_de_la_racine);
lecture (sous-arbre droit);
lecture (sous-arbre gauche);
finsi;
fin lecture;
Comment modifier la procédure précédente pour obtenir la liste triée par ordre décroissant ?

Procedure lecture (arbre) Procedure lecture (arbre) Procedure lecture (arbre)


Debut Debut Debut
si arbre non vide alors si arbre non vide alors si arbre non vide alors
lecture (sous-arbre gauche); lecture (sous-arbre droit); ecrire (valeur_de_la_racine);
ecrire (valeur_de_la_racine); ecrire (valeur_de_la_racine); lecture (sous-arbre gauche);
lecture (sous-arbre droit); lecture (sous-arbre gauche); lecture (sous-arbre droit);
finsi; finsi; finsi;
fin lecture; fin lecture; fin lecture;
Exercice 3
Nous allons procéder à élaborer un codage spécifique, pour cela nous définissons le tableau
suivant :
A partir de ce tableau :
1) Générer l’arbre binaire correspondant.
 Nous marquons les arcs « fils gauches » avec 0 et les arcs « fils droit » avec des 1.
 Le chemin de la racine au caractère nous donne une suite de 0 et de 1 qui définit le
code du caractère.

E 00
B 010
A 10
R 11

2) Encoder le mot « ARBRE »

3) Ajouter la lettre ‘S’ dans cet arbre


4) Encoder le mot « ARBRES »