AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein einfaches Sotieren mit Hilfe von Stacks
Thema durchsuchen
Ansicht
Themen-Optionen

einfaches Sotieren mit Hilfe von Stacks

Ein Thema von Sqeese · begonnen am 18. Okt 2004 · letzter Beitrag vom 18. Okt 2004
Antwort Antwort
Sqeese

Registriert seit: 18. Okt 2004
6 Beiträge
 
#1

einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 14:37
HI Leuts!
Ich hab da nen Problem. Ich soll ne zeichenkette mit hilfe von 3 Stacks sortieren. Die Kette besteht nur aus den Buchstaben A und B(quasi der erste Stack). Die A´s sollen in einen stack und die B´s in einen. is der erste stack leer sollen erst alle A´s wieder auf den ersten stack gelegt werden und dann alle B´s. und die ganze sache soll "grafisch" in 3 Listboxen verfolgt werden können.

Hoffe ihr könnt mir helfen. Thx schon mal. Sqeese
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 15:01
Du gehts mit einer for-Schleife durch den String durch und füllst je nachdem welcher Buchstabe gerade dran ist, eine der ListBoxen. Nach dem Ende der Schleife füllst du einfach den Inhalt der einen Listbox in eine andere und leerst diese eine Listbox dann.
  Mit Zitat antworten Zitat
Sqeese

Registriert seit: 18. Okt 2004
6 Beiträge
 
#3

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 15:18
so einfach darf ich´s mir leider nich machen. die vorgabe is, dass ich das mit 3 stacks machen soll
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 15:32
Dann mach' es so: fülle den ersten Stack mit dem String und gehe dann durch diesen ersten Stack durch, wobei du den zweiten und dritten füllst.
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

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

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 15:33
Dann "create" 3 Stringlists, und füge mit TStringlist.Add deine Zeichen hinzu. Deine Stringlist ist dann dein "Stack".
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Sqeese

Registriert seit: 18. Okt 2004
6 Beiträge
 
#6

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 16:34
Also ich würde es schon so machen wie Dax, nur fehlt mir leider die Kenntnis, wie ich das quelltextmäßig umsetze. ich seh momentan bei diesem ganzen pop,push, init etc. nich durch...
  Mit Zitat antworten Zitat
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
Sqeese

Registriert seit: 18. Okt 2004
6 Beiträge
 
#8

Re: einfaches Sotieren mit Hilfe von Stacks

  Alt 18. Okt 2004, 17:27
Vielen Dank Wuaegner
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz