Alors voila il s'agit de faire une gestion des avl (mais bon c'est pas ca le plus important):
Dans les package ads j'ai un type prive un_avl:
type un_avl is limited private;
puis:
type Un_Avl is limited private;
-- Ajouter un element au bon endroit
procedure Insere_Avl (V : in Integer;
A : in out Un_Avl);
-- Visualisation d?un AVl
private
-- Un type pour definir si on est a gauche ou a droite avl
type Direction is (Gauche, Droite);
type Noeud; -- Declaration du type noeud
type Un_Avl is access Noeud; -- Declaration du pointeur sur un noeud
type Tab_Fils is array (Direction) of Un_Avl; -- Tableau de pointeurs
type Noeud is record -- Structure d?un noeud
Contenu : Integer;
Hauteur : Natural := 0;
Descendance : Tab_Fils := (others => null);
end record;
end Gestion_Avl;
Alors la question porte sur le type un_avl, par exemple dans le fichier adb, je dois faire une sous-fonction recalcule_hauteur, qui prends en parametre un_avl et qui doit recalculer sa hauteur.
Mais pour acceder aux structures du noueud comment je fais?
Par exemple si a est mon parametre de type un_avl, pour changer la structure hauteur du noeud qu'il pointe, je fais
a.Hauteur := nouvelle_hauteur (une constante), c'est cela?
En fait j'ai pas trops compris le truc des limited private.
Merci de me repondre.