Objectif : Utiliser la classe Delphi (TAD de liste de chaînes de caractères) héritant directement de la classe des listes internes de string "TStringList" dans un TAD de pile LIFO (Last In First Out).
La fiche principale, le code associé dans la unit
Exécuter le programme
interface
de la classe de base utilisée
La fiche principale du projet :
interface de test de la pile LIFO
Remonter
Le code de la Unit fiche principale :
Uses UListBaseHerite,StdCtrls;
type
piLifo =class(liste)
public
function Est_Vide_Pile: boolean;
procedure Empiler (elt: T0);
procedure Depiler (var elt: T0);
function premier: T0;
procedure creationPiLifo(Box:TListBox);
end;
implementation
{//////////////////////////////// PUBLIC /////////////////////////////}
function piLifo.Est_Vide_Pile: boolean;
begin
if self.longueur=0 then
Est_Vide_Pile:=true
else Est_Vide_Pile:=false
end;
procedure piLifo.Empiler (elt: T0);
begin
self.Ajouter(elt);
end;
procedure piLifo.Depiler (var elt: T0);
begin
if not self.Est_Vide_Pile then
begin
elt:=self.premier;
self.supprimer(self.count);
end
end;
function piLifo.premier: T0;
begin
if not self.Est_Vide_Pile then
premier:=self.strings[self.count-1];
end;
procedure piLifo.creationPiLifo(Box:TListBox);
{création de la Pile LIFO (le
ListBox est déjà
chargé manuellement}
begin
self.creationListe(Box)
end;
end.
Remonter
Rappel de
l'interface de la classe liste :
unit UListBaseHerite;
interface
Uses Classes,StdCtrls;
type
T0 = string;
liste =class(TstringList)
public
procedure init_liste;
function longueur
: integer;
procedure supprimer
(k: integer);
procedure inserer
(k: integer; x: T0);
function kieme
(n: integer): T0;
function Test
(x: T0): boolean;
procedure Rechercher
(x: T0; var place: integer);
procedure creationListe(Box:TListBox);
procedure Ajouter(x:T0);
procedure effacer;
private
function Est_vide:boolean;
end;
.....
Remonter