Remplir un arbre binaire avec une table ordonnée.
Bonjour!
Je suis à la recherche de l'algorithme d'une fonction récursive prenant un tableau d'éléments ordonnés ainsi qu'une borne inférieur et une supérieur en paramètre, pour charger un arbre binaire équilibré.
Cette procédure ressemblerait avec Ada au code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| procedure Tree_Loader(Table : in table_access;
B_Inf, B_Sup : in out Natural) is
Coded_Word : T_Coded_Word;
Midle : Natural := B_Inf + ((B_Sup - B_Inf)/ 2);
New_B_Inf : Natural := b_inf+1;
New_B_Sup : Natural := b_sup-1;
begin
if Midle < new_B_sup then
Tree_Loader(Table => Table,
B_Inf => midle,
B_Sup => new_B_sup);
end if;
Coded_Word := Table(Midle);
Put_Line(To_String(Coded_Word.Word));
Code_To_Word.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Word);
Word_To_Code.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Code);
if new_B_inf < Midle then
Tree_Loader(Table => Table,
B_Inf => new_B_inf,
B_Sup => midle);
end if;
end Tree_Loader; |
Merci pour votre aide, s'il vous plaît.