Académique Documents
Professionnel Documents
Culture Documents
Solution
1. Le nombre d'octets d'un objet «Node» (1.50 points)
L'objet «Node» utilise 48 octets tel que illustré dans la figure suivante :
Node
16 Entête objet
8 Réf : left
8 Réf : right
4 Key
8 Value
4 Padding
48 octets
2. Un objet «BinarySearchTree» utilise 40 octets. Dans le cas où l'objet comporte pairs clé-valeur,
l'espace mémoire utilisé sera 32 + 48 n octets ~48n. (2.00 points)
BinarySearchTree
16 Entête objet
8 Réf : root
4 n
Page 1/4
4 Padding
32 octets
Écrire un algorithme (itératif) qui fusionne ces deux listes en une troisième liste (L3). Cette
troisième liste devra contenir exactement les valeurs des listes d’origine, et ces valeurs devront elles
aussi être triées par ordre croissant.
N.B. :
La liste L3 doit utiliser les maillons des listes L1 et L2 (Elle ne doit pas créer de nouveaux maillons
pour les valeurs de L1 et L2) et
Votre approche doit faire un seul parcours des deux listes L1 et L2.
Donnera
L3
1.0 1.4 2.0 2.1 2.2 2.5 2.9 3.9 4.8 5.2 5.2 6.0 7.2 7.7 8.1 9.9
Solution
Procedure Fusion (L1, L2 : pointeur, Variable L3 : Pointeur) 1 pt
Variable tail : pointeur
Procédure Insert_tail(Variable Tail : pointeur, p:pointeur) 1.25 pts
Début
Aff-Adr(tail, p)
Tail ← p
Fin
Page 2/4
Début
Insert_tail(Tail, L2)
L2 ← Suivant(L2)
Fin
Fin
Si (L1 <> nil) Alors 1.25 pt
Insert_tail(Tail, L1)
Si (L2 <> nil) Alors 1.25 pt
Insert_tail(Tail, L2)
Tail ← L3
L3 ← Suivant(L3) 1.25 pt
Libérer(Tail)
Fin /* fin fusion */
Solution
1. un algorithme récursif
2. Construire une relation de récurrence pour le temps d'exécution de votre algorithme récursif
.
Page 3/4
1.5 pts
.
.
.
Donc
Bon courage
Page 4/4