Zitat von
P_P:
Argh!
found ist lokale Variable in "Pfad".
Das ab ich gehofft.
(wobei viele ja gerne globale Variablen verwenden
)
Es ist aber auch immer schön, wenn wichtige Dinge einfach weggelassen werden, so wie z.B. irgendwelche Dekarationen.
So ala:
Delphi-Quellcode:
FUNCTION Pfad(root: TPtr; x: char): string;
VAR fount: Boolean;
BEGIN
...
Zitat:
IF ((NOT found){
Gut, dann geh mal von diesem IF nach oben
und schau ob/wo dieses "found" überhaupt mal TRUE werden kann.
Wenn nicht, dann ist es immer FALSE und somit würde dieser IF-Zweig immer ausgeführt, selbst wenn er es womöglich nicht sollte.
[add]
Eventuell meinst du es so?
Delphi-Quellcode:
FUNCTION Pfad(root: TPtr; x: char): string;
BEGIN
IF root^.c[1] <> x THEN
BEGIN
IF Assigned(root^.left) THEN
result := '0' + Pfad(root^.left, x)
ELSE
IF Assigned(root^.right) THEN
result := '1' + Pfad(root^.right, x)
ELSE
result := '';
END
ELSE
result := '';
END;