Si Jovalise trouve cette implémentation un peu particulière, j'ai quelques doute sur son efficacité :whistle: En tout cas, un déterrage de 21 ans, fallait oser :o
mechkurt
ben hur = jovalise
Non que ça ne rende la réponse de TotalRecall moins pertinente, mais on peut par contre se méfier de la réponse à la réponse... :o
TotalRecall
J'ai besoin de rien moi, je te suggérais juste comment tu pourrais rendre ta réponse plus utile.
21 ans plus tard, y a peu de chances que ça serve à l'auteur du topic en tout cas.
Pour les autres, tu devrais fournir l'implémentation de ton arbre et un exemple d'utilisation, parce que la méthode Ada seule n'est pas très exploitable.
Puisqu'il vous semble que ce soit moi qui soit dans l'erreur, veuillez veiller à répondre par vous même à votre besoin.
TotalRecall
21 ans plus tard, y a peu de chances que ça serve à l'auteur du topic en tout cas.
Pour les autres, tu devrais fournir l'implémentation de ton arbre et un exemple d'utilisation, parce que la méthode Ada seule n'est pas très exploitable.
Bonjour !
Pour ma part, je pense savoir que l'implémentation doit être le reflet logiciel de l'axiomatique de l'objet observé ici, un arbre n - aires. Peut importe ce que l'on cherche ; le tout est de parcourire l'arbre exhaustivement.
Voici une implémentation, peut être un peut particulière, d'une recherche dans un arbre n - aires.
C'est une procédure récursive. Ici écrite avec Ada.
Je doute qu'elle soit directement utilie à tous et à chacun. je la poste pour répondre au moins en partie à la requête.
Code :
procedure Search(T : inout Terminal_Type;
name : in Name_Type;
Path_Index : inout Natural;
Prompt : out Name_Type;
Success : out boolean)is
Vector : Objects_Vector := T.Obj_Cur.vector;
begin
Success := False;
if T.Obj_Cur.Name = Name then
Prompt := Name;
Success := True;
else
ifnot Is_Empty(Vector)then
for I in1..Last_Index(Vector)loop
declare
E : Abstracted_Access := Element(Vector, I);
Term : Terminal_Type := T;
begin
if E /= nullthen
Switch(Term, I, Prompt, success);
Path_Index := Path_Index + 1;
if Success then
Search(Term, Name, Path_Index, Prompt, success);
if Success then
T := Term;
exit;
endif;
endif;
else
raise Program_Error;
endif;
end;
endloop;
endif;
endif;
end Search;
gilou
Ben non, il y a rien dns le sujet: tu indiques pas ce que tu cherches, comment c'est associe a un noeud de l'arbre, ni (surtout) comment tu as implemente ta structure d'arbre n-aire (y'a pas mas de possibilites pour ca).
A+,