Es wird aber (wie vorher) nur der String eines Objektes angezeigt.
WO wird der String angezeigt? Im Debugger der
IDE?
Es kommt immer drauf an, wo man den Breakpoint setzt.
Ausserdem ist das Debuggen von rekursiven Funktionen nicht so einfach.
Man verliert sehr leicht den Überblick auf welcher Aufruftiefe man sich bewegt.
Mit einer kleinen Erweiterung (Parameter
level) kann man die Tiefe der rekursiven Aufrufe mitzählen:
Delphi-Quellcode:
function TBaumklasse.preorderfunc(baum:TBinaryTree; level:Integer):string;
begin
if not baum.isEmpty then
begin
Result := Kettenklasse(baum.getobject).gibString;
Result := Result + '[' + preorderfunc(baum.getLeftTree, level+1) + ']';
Result := Result + '[' + preorderfunc(baum.getRightTree,level+1) + ']';
end
else Result := '(empty)'; // zum Test um leere Knoten zu entdecken
end;