• Aucun résultat trouvé

Corrigé Examen 2 Algorithmique/Structures de données / 2011 2012 Exercice 1 : Arbre de recherche binaire

N/A
N/A
Protected

Academic year: 2022

Partager "Corrigé Examen 2 Algorithmique/Structures de données / 2011 2012 Exercice 1 : Arbre de recherche binaire"

Copied!
1
0
0

Texte intégral

(1)

Corrigé Examen 2 Algorithmique/Structures de données / 2011 2012 Exercice 1 : Arbre de recherche binaire

SOIT

A , P DES ARB ;

Une_pile UNE PILE DE ARB ;

Afficher , Tr , Recherche DES ACTIONS ; Top , Rotg , Rotd DES FONCTIONS ( ARB ) ;

DEBUT

CREER_ARB ( A , [ 55 , 23 , 18 , 17 , 40 , 45 , 66 , 60 , 77 ] ) ; APPEL Recherche ( A , 45 , P ) ;

ECRIRE ( INFO ( P ) , '***' ) ; APPEL Tr ( A , P ) ;

APPEL Afficher ( A ) ;

FIN

ACTION Recherche ( A , Val , P ) ; SOIT

A , P DES ARB ; Trouv UN BOOLEEN ; Val UN ENTIER ;

DEBUT

CREERPILE ( Une_pile ) ; Trouv := FAUX ;

P := A ;

TQ ( P <> NIL ) ET NON Trouv SI INFO ( P ) = Val

Trouv := VRAI SINON

EMPILER ( Une_pile , P ) ; SI Val < INFO ( P )

P := FG ( P ) SINON

P := FD ( P ) FSI

FSI FTQ FIN

ACTION Afficher ( A ) SOIT

A UN ARB ;

DEBUT SI A <> NIL

ECRIRE ( INFO ( A ) ) ; APPEL Afficher ( FG ( A ) ) ; APPEL Afficher ( FD ( A ) ) ;

FSI FIN

ACTION Tr ( A , N ) ; SOIT

(2)

A , N , P DES ARB ;

DEBUT

TQ NON PILEVIDE ( Une_pile ) DEPILER ( Une_pile , P ) ;

ECRIRE ( '******depilement' , INFO ( P ) ) ; SI FG ( P ) = N

N := Rotd ( P ) SINON

N := Rotg ( P ) FSI ;

FTQ ; A := N FIN

FONCTION Top ( Une_pile ) : ARB ; SOIT

Une_pile UNE PILE DE ARB ; V UN ARB ;

DEBUT

DEPILER ( Une_pile , V ) ; EMPILER ( Une_pile , V ) ; Top := V

FIN

FONCTION Rotg ( P ) : ARB SOIT

P , N , Q DES ARB ;

DEBUT

N := FD ( P ) ;

AFF_FD ( P , FG ( N ) ) ; AFF_FG ( N , P ) ;

SI NON PILEVIDE ( Une_pile ) Q := Top ( Une_pile ) ; SI FG ( Q ) = P

AFF_FG ( Q , N ) SINON

AFF_FD ( Q , N ) FSI

FSI ; Rotg := N FIN

FONCTION Rotd ( P ) : ARB SOIT

P , N , Q DES ARB ;

DEBUT

N := FG ( P ) ;

AFF_FG ( P , FD ( N ) ) ; AFF_FD ( N , P ) ;

SI NON PILEVIDE ( Une_pile ) Q := Top ( Une_pile ) ; SI FG ( Q ) = P

AFF_FG ( Q , N )

(3)

SINON

AFF_FD ( Q , N ) FSI

FSI ; Rotd := N ;

FIN Exercice 2

(a) Fichier LOVC

Soit F UN FICHIER DE typeblocD ENTETE typeblocE TypeblocD = structure

Tab : Tableau[1..B] de caractère Suiv : Entier

fin

DEBUT Lire (N, D)

LIREDIR ( F , Buf , N )

Longueur := Buf.Tab[D] + Buf.Tab[D+1]

Long := Convert ( Longueur) Article := '' ;

SI Long <= B - D + 1

POUR I := D + 2 , D + Long - 2 Article := Article + Buf.Tab[I]

FPOUR SINON

POUR I := D + 2 , B

Article := Article + Buf.Tab[I]

FPOUR ;

LIREDIR ( F , Buf , Buf.Suiv ) POUR I := 1 , B - ( D + Long - 2 ) Article := Article + Buf.Tab[I]

FPOUR FSI ;

ECRIRE ( Article ) FIN

(b) Fichier TOF

Soit F UN FICHIER DE typeblocD ENTETE typeblocE TypeblocD = structure

Tab : Tableau[1..B] de caractère Suiv : Entier

fin

// Charger les blocs I, I+1 et I+2 dans un tableau (Table) J := 0 ;

Pour K :=I, I+2

(4)

LIREDIR ( F , Buf , K ) ; Pour M :=1, Buf.Nb

J := J+1 ;

Table[J] := Buf.Tab[M]

Fpour Fpour

Quot := J/3 ; Reste := Mod(J, 3) // Ecriture premier bloc M := 0 :

Pour K :=1, Quot M := M + 1 ;

Buf.Tab[M] := Table[K]

Fpour

Si (Reste= 1) ou (Reste = 2) M := M + 1 ;

Buf.Tab[M] := Table[Quot+1]

Fsi

Buf.Nb := M Ecriredir(F, Buf, I) // Ecriture deuxième bloc N := 0

Pour K :=M+1, M+1+ Quot - 1 N := N + 1

Buf.Tab[N] := Table[K]

Fpour

Si (Reste = 2) N := N + 1

Buf.Tab[N] := Table[M+1+ Quot – 1 + 1] // OU Table[K]

Fsi

Buf.Nb := N

Ecriredir(F, Buf, I+1) // Ecriture troisième bloc M := 0

Pour K :=N+1, J M := M + 1

Buf.Tab[M] := Table[K]

Fpour

Buf.Nb := M

Ecriredir(F, Buf, I+1)

Références

Documents relatifs

Chercher sur Internet l‘algorithme DSW (c’est un algorithme qui prend en entrée un arbre de recherche binaire afin de réaliser son équilibrage) et l’algorithme de

L’insertion des éléments du tableau dans un nouvel arbre selon l’ordre indiqué donne forcément un arbre équilibré.. Le 5 ième élément est donc la racine

[r]

Nous avons déjà parlé du QuickSort, dont la clé est l’idée qu’on peut trouver en temps linéaire la position qu’aura un élément quelconque, appelé pivot, dans le ta- bleau

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud

d- En supposant qu’il existe une fonction point/2 qui permette de dessiner un point de coordonn´ ees (x, y), d´ efinir une fonction qui dessine la repr´ esentation graphique

L’insertion et la suppression utilisent la rotation ` a gauche et ` a droite d’un arbre lorsqu’il est trop d´ es´ equilibr´ e :.