Vous êtes sur la page 1sur 3

Correction kholle 2 :

Nb_niveau( A : abr, p : entier)

Prof=1

Nb_niveau_aux(A,p,prof)

Fonction nb_niveau_aux(A :abr, p :entier, prof :entier) :entier

Si est_vide(A) : renvoyer 0

Sinon

Si prof=p : renvoyer 1

Sinon prof++

Renvoyer nb_niveau_aux(fg(A),p,prof+nb_niveau_aux(fd(A),p,prof

OF : est_vide(A) complexité : T(0)=1 et T(n)=1+2T(n-1) avec n le niveau de l’arbre

T(n)=1+2T(n-1)

T(n)=1+2(1+2(T(n-2)))=1+2+4T(n-2)

T(n)=1+2+4(1+2T(n-3))=1+2+4+8T(n-3)

Au niveau k :T(n)= 1+2+4+…+2^(k) + 2^(k+1)T(n-k)

= (Somme(i=0,k) 2^k) + 2^(k+1)T(n-k))

Cas d’arrêt : n=k

Soit : (Somme(i=0,n) 2^n) + 2^(n+1)T(0))= 2^(n+1)-1+2^(n+1)= 2^(n+2)-1

1+2+4+8+…+2^n=2^(n+1)-1

11

111

1111
Nb-niveau(A,2)

Nb_niveau_aux(A,2,1)

Nb_niveau_aux(A,2,1)

Prof++

Nb_niveau_aux(fg(A),2,2)-> renvoie 1+nb_niveau(fd(A),2,2) -> renvoie 1

Renvoyer 1+1=2

Nb_niveau(A,3)

Nb_niveau_aux(
Fonction kholle2(A :ABR :p :entier) :entier

Si est_vide(A) renvoyer 0

Sinon si p==1 renvoyer 1

Sinon renvoyer kholle2(fg(A),p-1))+kholle2(fd(A),p-1))

Kholle2(A,2)

Kholle2(fg(A),1))+ kholle2(fd(A),2))

Vous aimerez peut-être aussi