Ein Stack für "Arme" ist auch mein Quick&Dirty Stack für Integer, den nehme, wenn ich keine Prüfungen brauche, sondern schnellen Zugriff.
Evtl. hilft die einfache Programmierung ja, den Sinn der einzelnen Funktion zu verstehen:
Delphi-Quellcode:
type
TStack =
array[0..1000]
of Integer;
// Stack für 1001 Integer Werte
var
Stack : TStack;
StackPos : Integer = -1;
procedure StackPush(i : Integer);
begin
inc(StackPos);
Stack[StackPos] := i;
end;
function StackPop : Integer;
begin
Result := Stack[StackPos];
dec(StackPos);
end;
function StackTop : Integer;
begin
Result := Stack[StackPos];
end;
function StackEmpty : Boolean;
begin
Result := StackPos < 0;
end;