Structures de données et de fichiers
|
Enoncé 33. Listes linéaires chaînées Corrigé 33
Problème : Vecteur de listes linéaires chaînées
On dispose d un vecteur de listes linéaires chaînées (LLC).
Chaque LLC contient un mot de longueur quelconque à raison dun caractère par maillon.
1- Définir les structures de données.
2 Ecrire le module PREMIER (L, x, Prem, Prec) qui retourne
- dans Prem ladresse du premier maillon de la LLC L contenant un caractère donné x sil existe,
- dans Prec ladresse de son précédent.
3. Ecrire le module CREER(C, I, L, T, Q) qui crée une LLC de tête T et de queue Q à partir dune sous-chaîne de C de longueur L commençant à la position I.
4- Utiliser le module PREMIER pour écrire le module de recherche RECH(C, L, Tete,Trouv, P, Q) dune chaîne donnée C de longueur L dans une LLC Tete. Le module rend comme résultats une valeur booléenne Trouv indiquant lexistence de la chaîne C et les pointeurs P et Q définis comme suit :
- P pointe le précédent du premier élément de la chaîne C
- Q le dernier élément de la chaîne C.
5- Utiliser le module RECH et CREER pour écrire lalgorithme qui remplace une chaîne donnée C1 de longueur L1, si elle existe, par une autre chaîne C2 de longueur L2 dans tous les mots du vecteur. Le remplacement seffectue sur les maillons déjà existants. En
dautres termes, il y a allocation de nouveaux maillons que si L2 > L1.
NB:
1. Un mot est une suite de caractères non blancs
2. Une chaîne est assimilée à un vecteur de caractères.
* * * * *