Einzelnen Beitrag anzeigen

Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 16:43
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 ?!
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat