L2-FLIN301-
Algorithmiąue
et
Structures
de
Donnees
-
Examen
Session
l -
Janvier
2009
Lisez
attentwement
le
sujet
avant
de
rediger
et de
poser
une
guestion.
Vous
pouvez utiliser
un
algorithme
vu en
cours. Dans
ce cas
inutile
de
redonner
ni le
corps
de l
'algorithme,
ni
ses
specifications.
Vous
pouvez utiliser
un
algorithme
vu en TD ou en TP.
Dans
ce cas
inutile
de
redonner
le
corps
de
l'algorithme,
par
contre vous devez
rappeler
ses
specifications.
l
Listes
chainees
Question
l (5
points)
Algorithme
l
:
HValCommunes(d
LI
:
ListeSC,
d L2
:
ListeSC)
:ListeSC
Donnees
:
LI
et
LI
sont
2
listes simplement
chainees;
les
elements
de
LI
et L2
sont
tries
par
valeur
strictement
croissante
Resultat
:
renvoie
une
nouvelle listę triee
par
valeur
stictement
croissante;
les
valeurs
des
elements
de
cette listę
sont
les
valeurs
communes
a
LI
et
LI;
les
listes
LI
et L2 ne
sont
pas
modifiees.
La
figurę
ci-dessous
illustre cette operation.
Donnez deux
algorithmes
pour
l
'operation
HValCommunes
:
un
algorithme
recursif
et un
algorithme
iteratif.
Donnez
la
complexite
de
chacun
de ces
algorithmes.
Question
2 (3
points)
Donnez
un
algorithme
qui
etant
donnę
2
listes simplement
chainees
supprime
de ces
listes
les
elements dont
les
valeurs
sont
communes
aux 2
listes.
Vous
donnerez
la
complexite
de
votre algorithme.
Algorithme
2 :
oterElemCommun(dr
LI
:
Listę;
dr
Z/2
.'
Listę)
Donnees
:
LI
et
LI
sont
2
listes simplement
chainees;
les
elements
de
LI
et
LI
sont
tries
par
valeur
strictement
croissante
Resultat
:
Modifie
les
listes
LI
et L2 en
supprimant
de
LI
les
elements dont
la
valeur
est
l'une
des
valeurs
de
LI
et en
supprimant
de L2 les
elements dont
la
valeur
est
l'une
des
valeurs
de
LI;
cet
algorithme
ne
doit
creer
aucune nouvelle cellule.
La
figurę
ci-dessous illustre cette operation
:
2
Arbres
CJuestion
3 (l
point)
A
guels
intervalles doivent appartenir
les
etiąuettes
X et Y
pour
que
dans
la figurę ci-
dessous l'arbre
A
soit
un
arbre binaire
de
recherche
et que
l'arbre
B
soit
un Tas
binaire
?
20
29
24
20
L2-FLIN301-
Algońthmiąue
et
Structures
de
Donnees
-
Examen Session
l -
Janvier
2009
Question
4 (3
points)
Algorithme
3
:
UEtiqFeuilles(d
A
:
Arbre
binaire
) :
listę
Donnees
:
A est un
arbre
binaire
Resultat
:
renvoie
la
listę
simplement
chalnee
composee
des
etiguettes
des
feuilles
de A.
La
figurę
ci-dessous illustre
la
ąuestion
Donnez
un
algorithme pour
HEtiąFeuilles.
Si
pour cette
ąuestion
vous
utilisez
une
operation
de
concatenation
de
listes,
precisez
ses
specifications.
Exceptionnellement
vous
ne
donnerez
pas la
complexite
de
l'algorithme.
3
Tableaux
A et B
etant
2
tableaux,
ii
s'agit
de
yerifier
si
1'ensemble
des
yaleurs
des
elements
de A est
egal
a
1'ensemble
des
yaleurs
des
elements
de B.
II
ne
faut
pas
tenir
compte
du
nombre
d'occurrences
des
yaleurs
dans
chaąue
tableau.
Ainsi
on
diraąue
A[l..n]
et
B[l..p]
ont
meme
ensemble
de
yaleurs
si et
seulement
si
Vi
[l..n],
Elj
e
[l..p],
A[i\
=
B[j]
et
Vi e
[l..p],
3j
e
[L.n],
A[i]
=
B\j\.
^_^_^_^_^
Par
exemple
les
tableaux
l 5 l 8 l 4 l 4
6|4|
et l 6 5 8 l 6 l 4 ont
m&ne
ensemble
de
yaleurs.
Algorithme
4 :
memeEnsemble(d
A[l..n]
:
tableau,d
B[l..p]
:
tableau
) :
booleen
Donnees
:
/ł[l..n]
et
-B[l..p]
sont deux tableaux
Resultat
:
Renyoie
Vrai
si et
seulement
si A et B ont
meme
ensemble
de
yaleurs.
Vous
devez
ecrire
2
algorithmes
pour
ce
probleme.
Question
5 (2
points)
Les
donnees
du
premier
algońthme
sont
deux
tableaux
non
tries.
L'algorithme
ne
doit
pas
trier
les
tableaux.
Ecrwez
l
'algorithme
et
donnez
complexite.
Question
6 (3
points)
Les
donnees
du
deuxieme
algorithme sont
deux
tableaux
tries.
Yotre
algorithme doit
ame-
liorer
la
complexite
de
l'algorithme
precedent.
Ecrwez
l'algorithme
et
donnez
complexite.
Question
7 (3
points)
Donnez
un
algorithme
efficace
pour
le
probleme suivant
:
Algorithme
5 :
somme(d
T[l..n]
:
tableau,d
Som
:
entier
)
:
booleen
Donnees
:
T[l..n]
est un
tableau
d'entiers;
Som est un
entier
Resultat
:
Renvoie
Vrai
si et
seulement
si
ii
existe
2
elements
(eventuellement
identiąues)
du
tableau
T
dont
la
somme
est
egale
a
Som.
Par
exemple
pour
le
tableau
|5|9|7|6|6|4
, si le
parametre
Som
vaut
8 ou 12
l'algorithme
renvoie
Vrai.
Si
la
valeur
du
parametre
Som est 5 ou 17
l'algorithme renvoie Faux.
On
vous
demande
un
algorithme
efficace,
c.'est
a
dire
un
algorithme dont
la
complexite
dans
le
pire
des cas est
meilleure
que
O(n2).
Quelle
est
complexite
?
1 / 7 100%