-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathliste_generique.ads
56 lines (41 loc) · 1.6 KB
/
liste_generique.ads
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
-- liste_generique.ads
---------------------------------------------------------------
-- La partie GENERIQUE du package:
-- 1. le type Element des elements de la liste
-- 2. une procedure "Put" affichant un element
--
generic
type Element is private;
with procedure Put(E : in Element);
with function "=" (A, B : Element) return Boolean;
with function "<" (A, B : Element) return Boolean;
-- Les specifications du package, qui n'utilisent
-- que les elements et procedures generiques
package Liste_Generique is
type Liste is private;
type Iterateur is private;
-- Affichage de la liste, dans l'ordre de parcours
procedure Affiche_Liste (L : in Liste);
-- Insertion d'un element V en tete de liste
procedure Insere_Tete (V : in Element; L : in out Liste);
-- Vide la liste et libere toute la memoire utilisee
procedure Libere_Liste(L : in out Liste);
-- Creation de la liste vide
function Creer_Liste return Liste;
-- Cree un nouvel iterateur
function Creer_Iterateur (L : Liste) return Iterateur;
-- Liberation d'un iterateur
--procedure Libere_Iterateur(It : in out Iterateur);
-- Avance d'une case dans la liste
procedure Suivant(It : in out Iterateur);
-- Retourne l'element courant
function Element_Courant(It : Iterateur) return Element;
-- Verifie s'il reste un element a parcourir
function A_Suivant(It : Iterateur) return Boolean;
FinDeListe : exception;
private
type Cellule;
type Liste is access Cellule;
type Iterateur_Interne;
type Iterateur is access Iterateur_Interne;
end Liste_Generique;