Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by idefix2,
24. Jun 2010
Überleg einmal, was passiert, wenn es genau ein Listenelement gibt.
Dein Developerbyindex wird genau einmal mit dem Parameter index=1 aufgerufen.
if index <= DevelopersCount liefert true
for i := 0 to index-1 do -> from 0 to 0, schleife wird genau einmal durchlaufen
current := current^.Next; -> first^.next = nil, weil es ja nur ein Listenelement gibt, der next pointer des ersten...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by idefix2,
23. Jun 2010
Noch einmal: Der Index läuft von 0 bis count-1 !
Du prüfst jetzt, ob index <= Count ist. Wenn Index = Count ist, dann ist Index um 1 zu gross.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by idefix2,
23. Jun 2010
Dann passt das wahrscheinlich in etwa so, wie Du geschrieben hast. Allerdings dient das System, nach dem Du Deinen Code einrückst, eher der Verwirrung des Gegners (und der eigenen), da fühl ich mich überfordert, dem im Detail nachzugehen:
if developersCount > 0 then
begin
for I := DEVELOPER_MIN to DEVELOPER_MAX do
Runpointer := first;
While RunPointer <> nil do
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by idefix2,
23. Jun 2010
Es kommt darauf an, was Du willst:
Willst Du üben, wie das Programmieren von Listenstrukturen aussieht, dann wirst Du irgend so eine Pointer Struktur brauchen, mit der Du Listen nachbildest. Das kann je nach Bedarf eine einfach oder doppelt verkettete Liste oder ein B-Baum oder was auch immer sein.
Wenn Du einfach nur eine Liste brauchst, dann verwende TList oder TObjectlist, da hast Du...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by idefix2,
23. Jun 2010
Es gibt doch in delphi die fertige Klasse TList, die alles beinhaltet, was Du für die Verwaltung von Listen brauchst.
Von der brauchst Du nur mehr Deine spezifische Klasse ableiten.