Algorithmique &Structures de données
Examen 2 // 2013 2014
Barème : (4 + 2 + 4 + 4 + 2 + 4)
Durée : 2H.
Arbre de recherche binaire de tableaux de N nombres entiers : construction
et sauvegarde sur le disque.
1. Construire un arbre de recherche binaire - à partir de M tableaux lus en entrée - dans lequel
chaque nœud est un tableau de N entiers. L’arbre est ordonné selon le poids des tableaux. Le
poids d’un tableau est la somme de ses éléments. On peut ranger des tableaux de poids égaux
mais on ne range pas les tableaux identiques.
2. En utilisant un algorithme récursif, lister les éléments de l’arbre ordonnés selon leurs poids.
3. En utilisant un parcours Inordre avec une pile, déterminer dans l’arbre tous les tableaux de
poids compris entre deux poids P1 et P2 donnés.
4. Construire un fichier LÔF (Liste non ordonné avec format fixe des articles) à partir de tous
les tableaux contenus dans l’arbre parcouru en Inordre. On supposera que le tableau contenu
dans le buffer est un multiple de N. De plus, on remplira les blocs à 100%.
5. Lister tous les éléments du fichier bloc par bloc.
6. On veut aérer les blocs L et L+1 (L donné et le bloc (L+1) existe) en rajoutant un troisième
bloc entre ces deux blocs et en répartissant les articles équitablement dans les trois blocs.
Donner l’algorithme correspondant.
On utilisera (sans les écrire) les fonctions Poids(V) et Egal(V1, V2) définies comme suit :
Poids(V) : donne le poids du vecteur V.
Egal(V1, V2) : Vrai si V1 et V2 sont identiques.
Rappel : L’inordre est défini récursivement comme suit : T1 n T2 pour tout sous arbre de
racine n et de sous arbres gauche et droit T1 et T2.