Delphi-Hilfe/Quelltexterklärung.

Canon

Well-known member
20 April 2006
4.651
422
Hallo

Ich suche hier eine Erklärung bzw. Begriffserklärung über das Programm "Keller"
Also Last In First Out (LIFO).
Mein Problem ist, ich habe den quelltext nicht vorliegen.
Vielleicht finde ich zufällig hier jemanden der dies vorliegen hat und mir diesen Erklären kann.
Eigentlich brauche ich nur die wichtigsten Anweisungen, weil ich absolut null Plan habe.
Habe im Internet nur eine Hilfreiche Seite gefunden:
ADT Lineare Liste

Aber ich habe einfach keine Ahnung.
Wäre wirklich super, Danke schonmal
Canon
Edit:
Hab den quelltext gefunden.
//-------- SetzeInhalt (public) ----------------------------------------
procedure TElement.SetzeInhalt(pInhalt: TInhalt);
begin
Inhalt := pInhalt
end;

//-------- SetzeNaechstes (public) ----------------------------------------
procedure TElement.SetzeNaechstes(E : TElement);
begin
Naechstes:=E;
end;

//-------- GibInhalt (public) ------------------------------------------
function TElement.GibInhalt : TInhalt;
begin
result := Inhalt
end;

//-------- GibNaechstes (public) ------------------------------------------
function TElement.GibNaechstes : TElement;
begin
result := Naechstes;
end;


//+---------------------------------------------------------------------
//| TListe: Methodendefinition
//+---------------------------------------------------------------------

//-------- Init (public) -----------------------------------------------
procedure TListe.Init;
Begin
Anzahl:=0;
End;

//-------- links_anfuegen (public) -------------------------------------
procedure TListe.links_anfuegen(Element : TElement);
Begin
if Anzahl=0 then begin
ToWurzel:=TElement.create;
ToWurzel.SetzeNaechstes(NIL);
ToWurzel:=Element;
end
else begin
Element.SetzeNaechstes(ToWurzel);
ToWurzel:=Element;
end;
SetzeAnzahl(Anzahl+1);
End;

//-------- loeschen (public) -------------------------------------------
procedure TListe.loeschen(Inhalt:TInhalt);
VAR i : Integer; gefunden : Boolean;
Aktuell : TElement;
begin
nach_vorne;
gefunden:=false;
for i:=1 to GibAnzahl do begin
//-------- löschen des erstmaligen Vorkommens ---------
if (Inhalt = GibInhalt) and (not gefunden) then begin
//-------- löschen des letztmaligen Vorkommens ---------
// if Inhalt = GibInhalt then begin
gefunden:=true;
Aktuell:=ToCursor;
end;
vor;
end;
if gefunden then begin
if Aktuell=ToWurzel then ToWurzel:=ToWurzel.GibNaechstes
else begin
nach_vorne;
while ToCursor.GibNaechstes<>Aktuell do vor;
ToCursor.SetzeNaechstes(Aktuell.Naechstes);
Aktuell.free;
ToCursor:=ToWurzel;
end;
Anzahl:=Anzahl-1;
end;
end;

//-------- nach_vorne (public) -----------------------------------------
procedure TListe.nach_vorne;
Begin
if not leer then ToCursor:=ToWurzel;
End;

//-------- rechts_anfuegen (public) ------------------------------------
procedure TListe.rechts_anfuegen(Element : TElement);
VAR i : Integer;
begin
if Anzahl=0 then begin
ToWurzel:=TElement.create;
ToWurzel.SetzeNaechstes(NIL);
ToWurzel:=Element;
end
else begin
nach_vorne;
for i:=1 to GibAnzahl-1 do vor;
ToCursor.SetzeNaechstes(Element);
Element.SetzeNaechstes(NIL);
end;
SetzeAnzahl(Anzahl+1);
end;

//-------- SetzeAnzahl (public) ----------------------------------------
procedure TListe.SetzeAnzahl(pAnzahl: Integer);
begin
Anzahl := pAnzahl
end;

//-------- vor (public) ------------------------------------------------
function TListe.vor:Boolean;
Begin
result:=false;
if not leer then
if ToCursor.Naechstes <> NIL then begin
ToCursor:=ToCursor.GibNaechstes;
result:=true;
end;
End;

//-------- GibAnzahl (public) ------------------------------------------
function TListe.GibAnzahl : Integer;
begin
result := Anzahl
end;

//-------- leer (public) -----------------------------------------------
function TListe.leer : Boolean;
Begin
leer:=Anzahl = 0;
End;

//-------- GibInhalt (public) -----------------------------------------------
function TListe.GibInhalt : TInhalt;
begin
if not leer then GibInhalt:=ToCursor.Inhalt;
end;

//+---------------------------------------------------------------------
//| TStack: Methodendefinition
//+---------------------------------------------------------------------

//-------- pop (public) -----------------------------------------------
function TStack.Pop : TInhalt;
VAR i : Integer;
begin
if not leer then
if GibAnzahl=1 then begin
pop := ToWurzel.Inhalt;
ToWurzel.Free;
Init;
end
else begin
nach_vorne;
Pop:=ToWurzel.GibInhalt;
ToWurzel:=ToWurzel.Naechstes;
ToCursor.Free;
SetzeAnzahl(GibAnzahl-1);
nach_vorne;
end;
end;

//-------- top (public) -----------------------------------------------
function TStack.top : TInhalt;
VAR i : Integer;
begin
if not leer then
top := ToWurzel.Inhalt;
end;

end.
 
Zuletzt bearbeitet: