Vous êtes sur la page 1sur 3

E. N. I. M .

Dpartement Informatique

Examen
Structures de Donnes
03/03/2012
Dure : 2 heures

Documents non autoriss

Remarques :
S Prciser, sur les copies, votre option et le nom de votre professeur :
Mme OUAZZANI Khadija ou M LAZREK Mohamed
S La rponse de chaque question doit tre sur une page de votre copie en respectant lordre des questions.

Problme I
Soit une matrice M(n,m) dentiers positifs.
La premire colonne de cette matrice est trie par ordre croissant, elle sert dindex pour ] reste de la matrice,
c'est--dire tous les lments de chaque ligne i, sauf le premier c'est--dire M (i,l) :
sont tris par ordre croissant
et
sont suprieurs M (i-l,l) et infrieurs ou gales M (i,l)
Remarque : tous les lments de la premire ligne, sauf 1 premier c'est--dire M (l,l) sont suprieurs 0 et
infrieurs ou gaux M (l,l).
Exemple :

100
200
300
400
500
600

0
104
208
350
407
501

9
110
230
360
410
510

20
150
270
370
420
520

40
190
280
390
470
580

100
199
290
400
480
585

On suppose que la matrice est dj cre en mmoire.

Question 1:
Ecrire lalgorithme qui permet dafficher pour chaque valeur de lindex la valeur
minimale et maximale.
Exemple :
Valeur de lindex
100
200
300
400
500
600

minimum
0
104
208
350
407
501

maximum
100
199
290
400
480
585

Question 2:
Ecrire lalgorithme qui permet de chercher lexistence , une valeur X dans la matrice.
: Exemple
Pour X=360 ======> cette valeur existe
Pour X* 155 =--===> cette valeur nexiste pas

Structures de Donnes

Problme II
On suppose que nous avons plusieurs clients et que chaque client peut commander plusieurs articles.
Chaque client est repr par un matricule.
Chaque article est repr par :

un code darticle
la quantit commande
le prix unitaire
Ce problme peut tre reprsent dans la mmoire sous forme dune liste de listes de la faon suivante :
dbut

j]

NULL

I -
Code quantit Prix
unitaire
article

Code quantit Prix


article
unitaire

............

NULL

NULL

Chaque nud de la liste des clients est constitu de :


> Mat
: matricule du client
> Tete_commande
: dbut de la liste des commandes
> Cli_suiv
: le pointeur vers le client suivant
Chaque nud de la liste des articles est constitu de :
> code
: code de larticle
> quantit
: quantit commande
> prix
: prix unitaire de larticle command
> Arti_suiv
: le pointeur vers larticle suivant

Ecrire lalgorithme, non rcursif, qui permet de calculer le montant payer pour un client
donne par son matricule.
Montant payer = (quantit * prix)
On suppose que la liste de listes est dj cre en mmoire.

|
binaire.

fonction rcursive qui permet de calculer le nombre dccurrence de chaque

m arbre

faut crer une liste chane simple o chanque lment est compos detrois champs :
Valeur : valeur dun nud de )arbre
Compteur : nombre doccurrence de cette valeur dans larbre
Suivant : pointeur ! llment suivant de la liste
Cette liste est cre au firr et mesure du parcours de larbre de la faon suivante :
Pour chaque nud de larbre, on teste si la valeur de ce nud existe dans la liste :
Si oui incrmente le compteur
Si non on cre lment dans la liste on affecte la valeur du nud Valeur et 1 au Compteur.

On suppose la rb re b in a ire est d j er.


Exemple :
A partir de larbre binaire suivant :

obtient [ suivante :

1 ? 1 * 1 *4'
'

P ro b l m e

Ilot

213

1 1

jNULL}

I : p p n55 , 2 ? 5 <

;: 0 1 !1 r 7: -

. .