60 lines
1.3 KiB
Ada
60 lines
1.3 KiB
Ada
|
-- Spécification du module Piles.
|
||
|
|
||
|
generic
|
||
|
type T_Element is private; -- Type des éléments de la pile
|
||
|
|
||
|
package Piles is
|
||
|
|
||
|
type T_Pile is limited private;
|
||
|
|
||
|
|
||
|
-- Initilaiser une pile. La pile est vide.
|
||
|
procedure Initialiser (Pile : out T_Pile) with
|
||
|
Post => Est_Vide (Pile);
|
||
|
|
||
|
|
||
|
-- Est-ce que la pile est vide ?
|
||
|
function Est_Vide (Pile : in T_Pile) return Boolean;
|
||
|
|
||
|
|
||
|
-- L'élément en sommet de la pile.
|
||
|
function Sommet (Pile : in T_Pile) return T_Element with
|
||
|
Pre => not Est_Vide (Pile);
|
||
|
|
||
|
|
||
|
-- Empiler l'élément en somment de la pile.
|
||
|
-- Exception : Storage_Exception s'il n'y a plus de mémoire.
|
||
|
procedure Empiler (Pile : in out T_Pile; Element : in T_Element) with
|
||
|
Post => Sommet (Pile) = Element;
|
||
|
|
||
|
|
||
|
-- Supprimer l'élément en sommet de pile
|
||
|
procedure Depiler (Pile : in out T_Pile) with
|
||
|
Pre => not Est_Vide (Pile);
|
||
|
|
||
|
|
||
|
-- Détruire une pile.
|
||
|
-- Cette pile ne doit plus être utilisée sauf à être de nouveau initialisée.
|
||
|
procedure Detruire (P: in out T_Pile);
|
||
|
|
||
|
|
||
|
-- Afficher les éléments de la pile
|
||
|
generic
|
||
|
with procedure Afficher_Element (Un_Element: in T_Element);
|
||
|
procedure Afficher (Pile : in T_Pile);
|
||
|
|
||
|
|
||
|
private
|
||
|
|
||
|
type T_Cellule;
|
||
|
|
||
|
type T_Pile is access T_Cellule;
|
||
|
|
||
|
type T_Cellule is
|
||
|
record
|
||
|
Element: T_Element;
|
||
|
Suivant: T_Pile;
|
||
|
end record;
|
||
|
|
||
|
end Piles;
|