Wieso wird die Funktion dort verlassen?
Ich könnte doch auch THEN und ELSE vertauschen, wenn ich die Bedingung ändere:
Delphi-Quellcode:
FUNCTION Pfad(root: TPtr; x: char): string;
VAR found: boolean;
BEGIN
found := FALSE;
IF root^.c[1] = x THEN
BEGIN
result := '';
found := TRUE;
END
ELSE
BEGIN
IF ((root^.left <> NIL)) THEN
BEGIN
result := '0' + Pfad(root^.left, x);
IF (NOT found AND (root^.right <> NIL)) THEN result := '1' + Pfad(root^.right, x);
END;
END;
END;