Guten Morgen,
Zitat von
Stillmatic:
... Das sortieren kann ich nicht machen da ich dann die Liste veränder und das darf nicht sein! ...
selbstverständlich darfst du die Liste sortieren - du musst es sogar. Wie willst du sonst deinen
Morse-Code in einen Binärbaum verwandeln? Die Ordnung im Baum bleibt ja stets dieselbe und ist nur von der Interpretation der beiden Zeichen abhängig. alzaimar hat dich ja schon darauf gestoßen: Der Sort muss ja kein inplace sort sein:
Delphi-Quellcode:
procedure TDemoForm.Button2Click(Sender: TObject);
var
i: Integer;
c: Char;
a: array['A'..'E'] of String;
sl: TStringList;
begin
sl := TStringList.Create;
a['A'] := '.-';
a['B'] := '-...';
a['C'] := '-.-.';
a['D'] := '-..';
a['E'] := '.';
for c := Low(a) to High(a) do
sl.AddObject(a[c], Pointer(Ord(c)));
sl.Sort;
for i := 0 to Pred(sl.Count) do
begin
c := Chr(Integer(sl.Objects[i]));
ListBox.Items.Add(c + '=' + sl[i]);
end;
end;
Freundliche Grüße