Vous êtes sur la page 1sur 5

Université de Blida 1 ALGORITHMIQUES ET STRUCTURES DE

Département d’Informatique DONNEES 03

2 ième Année Licence Année 2023/2024


Corrigé Type de l’examen de Algo3 2023-2024

Exercice 1 : (08 pts)


Soit une liste simplement chainée L et un arbre binaire d’entier A,
Q1. Écrire la fonction estContenue (L : Liste, A : Arbre) qui renvoie vrai si une liste L
est contenue dans un arbre binaire A, faux sinon. (04 pts),
1- transformer l'arbre en liste simplement chainée LA.
Procedure TreeToList(A:Arbre, Var L:Liste)
Debut
Si(estVide(A)) alors
AjoutFinLLC(L,val(A));
TreeToList(FilsG(A), L);
TreeToList(FilsD(A), L);
finsi;
Fin;
2- tester si L est une sous liste de LA
Fonction estContenue(L:Liste, A:Arbre):booleen
Var p, LA:liste;
Debut
Si((estVide(L))et(estVide(A))) alors
retourner vrai;
sinon
Si((estVide(L))ou (non estVide(L)) et(estVide(A))) alors
retourner faux;
sinon
init(LA);TreeToList(A, LA);
p=LA;
Tantque() faire
si(p=nil) alors
retourner faux;
sinon
si(val(L)=val(p)) alors
L=suiv(L);
p=LA;
sinon

Page 1 sur 5
Université de Blida 1 ALGORITHMIQUES ET STRUCTURES DE

Département d’Informatique DONNEES 03

2 ième Année Licence Année 2023/2024


Corrigé Type de l’examen de Algo3 2023-2024

p=suiv(p);
finsi;
finsi;
finTQ;
retourner vrai;
finsi;
finsi;
Fin;
quel est la complexité de cette fonction ? (01 pts)
O(N*M);
Q2. Écrire la fonction Asc_Noeud (A : Arbre, e : Arbre) qui récupère les ascendants
d’un nœud donné dans un arbre binaire A. (03 pts)
Indication :il est recommandé d’ajouter des paramètres supplémentaires à votre fonction.
Fonction Asc_Noeud (A:Arbre, e: Arbre, var L:Liste): booleen
Debut
Si((estVide(A))OU(estVide(e))) Alors
Retourner(faux);
sinon
si(val(A)= val(e)) alors
Retourner(vrai);
sinon
si (Asc_Noeud(FilsG(A), e, L)) Alors
AjoutFinLLC(L,val(A));
Retourner(vrai); finsi

si (Asc_Noeud(FilsD(A), e, L)) alors


AjoutFinLLC(L,val(A));
Retourner(vrai);
finsi ;
Retourner(faux);
Finsi;
finsi;
Fin;

Page 2 sur 5
Université de Blida 1 ALGORITHMIQUES ET STRUCTURES DE

Département d’Informatique DONNEES 03

2 ième Année Licence Année 2023/2024


Corrigé Type de l’examen de Algo3 2023-2024

Exercice 2 : (06 pts)


Considérant les deux tableaux Inf et Post dont les valeurs représentent respectivement les
séquences de parcours infixé et postfixé d’un arbre binaire A.
Inf = [0, 11, 32, 2, 9, 25, 28, 7, 12, 8, 1] ;
Post = [0, 11, 9, 2, 32, 28, 8, 12, 1, 7, 25] ;
Q1. A partir des valeurs des deux tableaux ci-dessus dessiner l’arbre A. (01.5 pts)
25
32 7
11 2 28 1
0 9 12
8

Q2. Donner la séquence du parcours Préfixe de l’arbre A. (0,5 pts)


25, 32, 11, 0, 2, 9, 7, 28, 1, 12, 8
Q3. Écrire la fonction Construire_Arbre qui à partir des valeurs de parcours infixé et
postfixé contenues respectivement dans les tableaux Inf et Post renvoie l’arbre binaire
correspondant. (04 pts)
Indication :il est recommandé d’ajouter des paramètres supplémentaires à votre fonction.
d=1, f=n et Pindx=n;
Fonction Construire_Arbre(int:tab[], post:tab[], d,f:entier, var Pindx:entier)
var A: arbre; i: entier; trouve:booleen;
Debut
si(d>f) Alors
retourner(Nil);
sinon
A=creerNoeud(post[*Pindx]);
(*Pindx)=(*Pindx)-1;
si(d=f) alors
Retourner (A);
sinon// on cherche la position de noeuds dans in
i=d; trouve=faux;
tantque( (i<=f) et (non trouve)) faire
si (in[i]= val(A)) alors

Page 3 sur 5
Université de Blida 1 ALGORITHMIQUES ET STRUCTURES DE

Département d’Informatique DONNEES 03

2 ième Année Licence Année 2023/2024


Corrigé Type de l’examen de Algo3 2023-2024

trouve=vrai;
sinon
i=i+1;
finsi;
finTQ;
aff-fd(A, Construire_Arbre(in[], post[],i+1,f,Pindx));
aff-fg(A, Construire_Arbre(in[], post[], d,i-1, Pindx));
Retourner(A);
finsi;
finsi;
Fin;
Exercice 3 : (06 pts)
Soit une file F d’entier,
Q1. Écrire la procédure Elimine (F : File, k : entier) qui élimine le k ième élément de la
file F. (02 pts) Exemple : F= [1, 4, 7, 9, 11] avec k=4 la fonction renvoie F= [1, 4, 7, 11]
Procedure Elimine (var F:File, k:entier)
var i,x:entier; T: File;
Debut
Si(non FileVide(F)) Alors
i=0; initFile(T);
Tantque(non FileVide(F)) faire
Defiler(F,x); i=i+1;
si(i<>k) alors
Enfiler(T,x);
finsi;
finTQ;
Tantque(non FileVide(T)) faire
Defiler(T,x);
Enfiler(F,x);
finTQ;
finsi;
Fin;

Page 4 sur 5
Université de Blida 1 ALGORITHMIQUES ET STRUCTURES DE

Département d’Informatique DONNEES 03

2 ième Année Licence Année 2023/2024


Corrigé Type de l’examen de Algo3 2023-2024

Q2. Écrire la procédure récursive InverseRec (F : File), qui inverse tous les éléments de
file F. (01 pts)
Procedure InverseRec(Var F: File)
var x: entier;
Debut
Si(non FileVide(F)) Alors
Defiler(F,x);
InverseRec(F);
Enfiler(F,x); finsi;
Fin;
Q3. Écrire la fonction InversePremierK (F : File, k : entier) qui inverse l’ordre des k
premiers éléments de la file F. (03 pts)
Procedure inverse (Var F : File, k: entier)
Var x: enteir;
Debut
Si(k>0) Alors
Defiler(F,x);
Inverse(F,k-1);
Enfiler(F,x);
finsi;
Fin;
Fonction InversePremierK (F : File, k : entier, n : entier) : File
var x:entier;
Debut
Si(non FileVide(F)) Alors
inverse(F,k);
Tantque((n-k)>0)faire
Defiler(F,x);
Enfiler(F,x);
(n-k)=(n-k)-1;
finTQ;
finsi;
Fin;

Page 5 sur 5

Vous aimerez peut-être aussi