Structures de données et de fichiers
|
Problème : Arbre de recherche m-aire comme structure de fichiers
Le fichier de données est un arbre de recherche m-aire sur le disque implémenté comme suit :Fichier De ( Entier ,Vecteur ( 10 ) De Chaines ,Vecteur ( 10 ) De Entiers ,) Buffer Bufdon ;
Lentier désigne le nombre courant darticles (clés) par bloc
Le premier vecteur : les articles ( clés )
Le deuxième vecteur : les adresses de blocs.
Initialisation
Ecrire le module Init qui initialise
- le fichier avec un seul bloc racine (bloc 1) contenant la plus grande valeur de clé possible (zzzz)
- les différents paramètres.
Recherche
Ecrire le module Rech( Cle, I) qui recherche séquentiellement dans le buffer courant la plus petite clé supérieure ou égale à Clé , rend lindice I de lélément trouvé.
Utiliser Rech pour Ecrire le module Recherche (Cle, trouv , q, i) qui recherche Cle dans le fichier. Si la clé nest pas trouvée, Trouv = FAUX, Q pointe le nud feuille et I lindice de la plus petite clé supérieure ou égale à Cle.
Insertion
Ecrire le module Inserer_nud ( pos, clé, -1) qui insère la paire ( Cle, -1) à la position P dans le buffer courant.
Utiliser Recherche et Inserer_nud pour écrire le module Inserer (Cle) permettant dinsérer une clé dans le fichier
Parcours
Lister le fichier en ordre croissant.
Réorganisation
A la suite dinsertions répétées, larbre peut se déséquilibrer. Concevoir le module de réorganisation qui consiste donc à reconstruire un autre arbre de recherche m-aire équilibré en suivant les deux étapes suivantes :
1.Construire un fichier TOF (Tableau Ordonné Fixe) contenant toutes les clés du fichier
2. Parcourir dichotomiquement ce fichier pour construire un nouvel arbre de recherche m-aire.