exercice suivant

Arbre lexicographique

Question posée au contrôle continu du 20 juin 1995

On veut construire un arbre multiple d'ordre 26 permettant de stocker des mots d'un dictionnaire de sorte que les chemins partant de la racine représentent des mots du dictionnaire, de la façon suivante

Les arcs sont étiquettés avec les lettres de l'alphabet (on suppose ici que l'on ne tient pas compte des accents sur les lettres) et les noeuds contiennent un booléen indiquant si le chemin de la racine à ce noeud représente un mot complet ou pas (sur le dessin - = faux et * = vrai).

En utilisant la possibilité que donne le langage Pascal d'indexer un tableau de pointeurs à l'aide d'un intervalle de caractères afin de représenter les étiquettes des arcs, donner:

a) les déclarations de types et de variables nécessaires à la construction d'un tel dictionnaire,

b) une fonction booléenne ayant pour paramètre le dictionnaire et un string et indiquant si le mot contenu dans le string se trouve dans le dictionnaire,

c) une procédure imprimant touts les mots du dictionnaire dans l'ordre alphabétique.

Solution

exercice suivant