Bonjour!
Je rencontre un problème et je viens vous voir en espérant trouver de l'aide !
Je dispose d'une assez grande structure d'arbres que j'ai déclaré comme suit :
L'idée est de programmer un dictionnaire : à chaque chemin (de la racine jusqu'à une feuille) est associé une liste de mots.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 type Node; type Tree is access Node; package List_Fils is new Ada.Containers.Doubly_Linked_Lists(Tree); use List_Fils; type Node is record Char : Character; Num : Integer; Fils : List_Fils.List; end record;
Je dois donc avoir des listes chainées de String à la toute fin de mon arbre (après les feuilles). Autrement dit, une fois arrivé à une feuille, celle-ci doit pointer sur une Liste de String.
Je comptais donc déclarer un type Feuille comme ça :
Mon problème c'est que l'avant-dernier niveau de mon arbre (celui juste avant les feuilles) ne peut pas pointer sur une structure différente que celle de Node !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package List_Words is new Ada.Containers.Doubly_Linked_Lists(unbounded_string); use List_Words; type Feuille is record Char : Character; Num : Integer; Words : List_Words.List; end record;
Et la surcharge de type n'existe pas (à ma connaissance) en Ada....
J'ai bien pensé à ajouter une Liste de String dans ma structure Node. Mais sachant que l'arbre est très grand, et que seules les feuilles en auront besoin, je trouve cette solution pas très élégante.
Je dois bien vous avouer que mon imagination s'arrête là. Auriez-vous l'idée d'un stratagème pour contourner mon problème ?
Merci beaucoup !
Partager