1/6
Examen intra
Directives
1) Vous avez 6 exercices et 20 questions sur un total de 5 pages (excluant
cette page).
2) La pondération de cet examen est de 20 points.
3) Aucune documentation n’est permise.
4) Les cellulaires, agendas électroniques ou téléavertisseurs sont interdits.
5) Vous devez répondre sur le questionnaire
Sigle de cours
420-202-RE
Nom de cours
Structures de données
et programmation
orientée objet
Professeure
Manal TAOUFIKI
Date
31/05/2016
Durée
2heures
2/6
Exercise1 : [2 points]
Cochez la bonne réponse pour les Questions à Choix Multiple (QCM) suivantes.
1) Push() et Pop() sont deux fonctions qui doivent être implémentées dans les:[Q1 ; 0.5point]
Listes
Piles
Files
Arbres
2) La pile marche selon le principe :[Q2 ; 0.5point]
LILO
FIFO
LIFO
FILO
3) La file marche selon le principe :[Q3 ; 0.5point]
LILO
FIFO
LIFO
FILO
4) Une liste simplement chainée doit contenir :[Q4 ; 0.5point]
un cycle
une racine
un nœud
un entête
Exercise2 : [1.5 points]
Remplir les lacunes par UN choix approprié parmi les choix donnés :
1) Dans le tas, l’élément qui a une haute priorité est toujours dans le nœud
____________________:[Q5 ; 0.5point]
i) Fils
ii) Père
iii) Premier nœud de sous arbre gauche
iv) Premier nœud de sous arbre droit
2) ____________________________ est un arbre dont la différence de hauteur entre son fils gauche
et son fils droit est au plus égale à 1. [Q6 ; 0.5point]
i) Arbre binaire de recherche
ii) AVL
iii) Arbre binaire complet
iv) Arbre dégénéré
3/6
3) Une propriété des arbres AVL, qui ont n nœuds, est que les fonctions : Find(), Insert() et Delete
prennent un temps de _____________:[Q7 ; 0.5point]
i) O(log(n))
ii) O(n)
iii) O(nlog(n))
iv) O(n)
Exercice 3 :[2 points]
Cochez V si l’énoncé est vrai et F s’il est faux.
1) Un arbre déséquilibré à N nœuds peut être équilibré en utilisant O(log(n)) rotations. [Q8; 0.5point]
□ V
□ F
2) L’algorithme de Dijkistra peut être utilisé pour prouver qu’un arbre est couvrant minimal. [Q9;
0.5point]
□ V
□ F
3) Dans une liste circulaire doublement chaînée avec 10 nœuds, nous aurons besoin de changer 4 liens
si nous voulons supprimer un nœud autre que la tête de la liste. [Q10; 0.5point]
□ V
□ F
4) Si le tableau suivant {6, 2, 7, 13, 5, 4} est ajouté à une file, dans l’ordre indiqué, le premier élément
à supprimer sera 4. [Q11 ; 0.5point]
□ V
□ F
Exercice 4 : [2.5 points]
Associez chaque scenario à la structure de données la plus appropriée en indiquant le numéro
correspondant. [Q12; 2.5point]
Scenario
Structure de données
1. Une épicerie décide de servir le premier arrivé.
a. ___Liste chainée
2. Aléatoirement et facilement, on peut accéder à
n’importe quel élément de la liste avec une
complexité O(1).
b. ___Liste doublement chainée
3. Un programme a besoin de se souvenir des
opérations qu’il a effectuées dans l’ordre opposé.
c. ___Pile
4. On peut ajouter un élément au début ou à la fin de
la liste avec une complexité O(1)
d. ___File
5. Cette structure se distingue par la gestion souple de
la mémoire. Par contre, pour arriver la fin de liste de
n élément, le programme prend un ordre O(n).
e. ___Tableau
4/6
Exercice 5 : [2 points]
Considérez l'arbre binaire suivant:
1) Donner le résultat de l'affichage de l'arbre binaire s’il est parcouru en pré-ordre. Séparez les
éléments par des virgules. [Q13; 0.5point]
2) Donner le résultat de l'affichage de l'arbre binaire s’il est parcouru en post-ordre. Séparez les
éléments par des virgules. [Q14; 0.5point]
3) Donner le résultat de l'affichage de l'arbre binaire s’il est parcouru en ordre. Séparez les
éléments par des virgules. [Q15; 0.5point]
4) Donner le résultat de l'affichage de l'arbre binaire s’il est parcouru par niveau. Séparez les
éléments par des virgules. [Q16; 0.5point]
5/6
Exercice 6 : [10 points]
Supposons que vous disposez d’une liste DOUBLEMENT CHAINEE L avec au moins un nœud interne
M qui ne soit pas le dernier nœud. Vous pouvez supposer que chaque nœud a un pointeur Suivant (qui
pointe sur le nœud suivant) et un pointeur Précédent (qui pointe sur le nœud précédent) et un élément
entier comme suit :
class noeud {
public :
Int element ;
noeud * Suivant ;
noeud * Precedent ;
}
1) Vous ne pouvez PAS changer les données pour accomplir l'une des opérations suivantes.
2) On notera que, pour chaque opération, vous avez besoin de manipuler au moins deux pointeurs
Suivant et Précédent.
Questions
Réponse
1) Supprimer le premier nœud. [Q17; 1 point]
Void supprimer()
{
}
2) Insérer un nœud immédiatement après M.
[Q18; 2 points]
Void insert (nœud *N)
{
}
3) Echanger le contenu de l’entête de la liste et
le nœud M sans échanger leurs donnés.
[Q19; 3points]
Void Echanger (nœud * entête, nœud *M)
{
}
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !