Delphi-Quellcode:
TStack =
class
private
{ Private-Deklarationen}
theStack: TStringList;
public
{ Public-Deklarationen}
constructor Create;
destructor Destroy;
override;
function Pop:
String;
procedure Push(s:
String);
function IsEmpty: Boolean;
function ShowTop:
String;
procedure Clear;
end;
implementation
{$R *.DFM}
////////////Stack//////////
constructor TStack.Create;
begin
inherited;
theStack := TStringList.Create;
end;
destructor TStack.Destroy;
begin
theStack.Free;
inherited;
end;
function TStack.Pop:
String;
{Popt die oberste Zahl vom Stack}
begin
Result := '
';
if IsEmpty
then
raise exception.Create('
Stack is empty');
Result := theStack.Strings[theStack.Count-1];
theStack.Objects[theStack.Count-1].Free;
theStack.Delete(theStack.Count-1)
end;
procedure TStack.Push(s:
String);
begin
theStack.Add(s);
end;
function TStack.IsEmpty: Boolean;
begin
Result := (theStack.Count = 0);
end;
function TStack.ShowTop:
String;
{Zeigt obersten String des Stacks an ohne ihn danach zu löschen}
begin
Result := '
';
if IsEmpty
then
raise exception.Create('
Stack is empty');
Result := theStack.Strings[theStack.Count-1]
end;
procedure TStack.Clear;
begin
theStack.Clear;
end;
{Ende der Stack Prozeduren}
procedure TForm1.FormCreate(Sender: TObject);
begin
DeinStack:= TStack.Create;
end;
Jetzt kannst du mit TStack.Pop das oberste Zeichen abrufen, mit TStack.Push ein Zeichen draufpacken, mit ShowTop das oberste Zeichen nur ZEIGEN ohne es runterzuholen.
Denke das müsste dir helfen ?!