Vous êtes sur la page 1sur 4

Année

Institut Supérieur des Etudes Technologiques de universitaire :


Sousse 2018/2019
Département de Technologies d'informatique
Semestre : 2
Licence appliquée en Technologies d'informatique
Date : 10 Juin 2019
EXAMEN Durée : 1h30

Documents: Unité d’enseignement: Algorithmique & Structures de Données II Classes : LA-TI1.*


Non autorisés Matière : Algorithmique & Structures de Données II Nb. Pages : 04

Enseignants : M.Hadhri, O. Ben Romdhane, H.Jegham, H.ZORGATI

Exercice : Arbre Binaire de Recherche 8,5 pts

Soit l’arbre binaire de recherche suivant :

Figure 1 : Arbre binaire de recherche « ABR »

NB : On rappelle qu’un arbre binaire de recherche est un arbre dont le parcours infixé (GRD)
donne une liste des nœuds rangés dans l’ordre croissant sur un champ clé bien déterminé. Par
exemple, dans cet arbre, la clé du nœud « N12 » est inférieure à celle du « N10 » et « N5 » est
supérieure à « N2 ».

ISETSO Juin 2019, Examen d’Algorithmique II Page 1 sur 4


Travail demandé :
1. Soit le parcours suivant contenant une seule erreur :
{ N4 - N8 - N5 - N2 - N9 - N12 - N14 - N13 - N10 - N6 – N7 – N11 - N3 - N1 }
Qu’appelle-on ce type de parcours ? Corrigez-le ? [1,5 pts]

2. Donner le parcours adéquat (nom et résultat du parcours) de cet ABR qui donne une
liste des nœuds rangés dans l’ordre décroissant. [1,5 pt]

3. Schématiser l’arbre final obtenu à la suite de la suppression des nœuds « N3 », « N5 » et


« N13 ». (« N3 » doit être remplacé par un nœud de son sous arbre-gauche). [1,5 pts]

4. La hauteur d’un nœud dans un arbre est la longueur du plus long chemin que l’on puisse
mener entre ce nœud et une feuille de l’arbre. Sur la figure 1, le nœud N14 a une
hauteur zéro et le nœud N6 a une hauteur de 3.

Ecrire une fonction Hauteur qui renvoie la hauteur d’un arbre binaire A. [4 pts]
NB : Utiliser les primitives sur les arbres binaires vues en cours que vous jugeriez
appropriées (sans les définir).

Problème : Piles et Files 11,5


pts

Un Scheduler d’un système d’exploitation multitâches permet d’exécuter N tâches en quasi


parallélisme. Chaque tâche est munie d’une priorité « pr », d’un temps d’arrivée « ta » et
d’un numéro de processus « np ». Elles sont rangées, dans l’ordre de leurs arrivées, dans une
pile appelée pTâches.
Le type Tâche est défini comme suit.

Tâche=ENREG
pr, ta, np : entier
FENREG

Le temps « ta » est un entier qui représente la conversion de l’heure d’arrivée du processus


en secondes après minuit. Pour l’exercice on suppose qu’un processus p1 dont le temps
d’arrivée est ta1 précède un processus p2 dont le temps d’arrivée est ta2 si ta1<ta2.

Pour tester ce système, on considérera 3 niveaux de priorité (1, 2 et 3). A ces trois niveaux
de priorité sont associées les Files F1, F2, F3. La priorité 1 est la plus élevée.

ISETSO Juin 2019, Examen d’Algorithmique II Page 2 sur 4


Les tâches sont dispatchées sur l’une des files suivant leur priorité selon l’algorithme LIFO,
de manière que, pour une même priorité, la tâche qui arrive en dernier est la première
traitée. L’analyse de ce problème montre la nécessité de deux types de données à utiliser : le
type Pile et le type File.

Pour la suite nous supposons définies toutes les autres opérations nécessaires pour la
manipulation des piles et des files à savoir :
- InitialiserFile, - InitialiserPile,
- enfiler, - empiler,
- defiler, - depiler,
- fileVide, - pileVide,
- SommetFile, - SommetPile.

1) Ecrire la procédure qui lit une Tâche avec une priorité valide (entre 1 et 3). [1,5 pt]
PROCEDURE lireTâche (VAR T : Tâche)

2) Ecrire la fonction précède qui étant données deus Tâches T1 et T2 renvoie Vrai si T1
possède un temps d’arrivée inférieur à T2 et FAUX sinon. [1,5 pt]
Fonction précède (T1, T2 : Tâche) : Booléen


3) Ecrire la procédure Scheduling qui étant donnée un nombre N permet de lire N Tâches
tout en vérifiant l’ordre de leurs arrivées. La première tâche et acceptée et empilée dans
PTâches quel que soit son temps d’arrivée « ta ». Pour les Tâches suivantes, Une Tâche
n’est acceptée que si son heure d’arrivée succède l’heure d’arrivée de la Tâche au
sommet de la Pile. De ce fait chaque tâche nouvellement empilée possède un temps
d’arrivée supérieur à toutes les tâches qui se trouvent déjà dans la pile. [3 pts]

PROCEDURE scheduling (VAR pTâches: Pile ; N : entier)

Exemple :
Soit N=5. Et soit l’état suivant de la pile après la lecture de toutes les informations des 5
processus.

1 4040 6
2 3980 5
3 3829 4
2 3780 3
1 3250 2
2 3120 1
ISETSO Juin 2019, Examen d’Algorithmique II Page 3 sur 4
pr ta np

4) Ecrire la procédure ordonnancement qui permet d’ordonnancer les processus selon leurs
priorités. Le traitement consiste à extraire les processus un par un de la pile pTâche et de
les insérer dans l’une des File F1, F2, F3 selon leurs priorités. F1 est la file correspondant à
la priorité la plus élevée (=1). [2,5 pts]

PROCEDURE ordonnancement (pTâches : Pile ; VAR F1, F2, F3 : File)

Exemple :
Soit la Pile de l’exemple précédent. Les Files qui résultent de l’exécution de la procédure
ordonnancement sont
les suivantes :
Queue Tête
1 4040 6 F1 1 3250 2 1 4040 6
2 3980 5
3 3829 4 F2 2 3120 1 2 3780 3 2 3980 5
2 3780 3
1 3250 2 F3 3 3829 4
2 3120 1 pr ta np
pr ta np

5) Le résultat de l’exécution sera un affichage de chaque tâche sous la forme (numéro :


temps d’arrivée).

a) Ecrire la procédure exécuterPr qui exécute les processus ayant la même priorité càd
appartenant à la même File. [2 pts]
PROCEDURE exécuterPr (F : File)

b) Ecrire la procédure ToutExécuter qui utilise la procédure précédente et qui exécute


tous les processus dans les trois files d’attentes selon leurs priorités, allant de la plus
prioritaire vers la moins prioritaire. [1 pt]

ISETSO Juin 2019, Examen d’Algorithmique II Page 4 sur 4

Vous aimerez peut-être aussi