außerdem warum unterscheidest du zw. TBinTree und TBinTreeNode? Eine Node ist doch ein Baum. Ich würde es so machen:
Delphi-Quellcode:
unit Unit2;
interface
type
TBinTreeNode =
class
private
FLeft, FRight: TBinTreeNode;
FValue:
string;
procedure SetLeft(l: TBinTreeNode);
public
constructor Create;
destructor Destroy;
Override;
function IsEmpty: Boolean;
property Left: TBinTreeNode
read FLeft
write SetLeft;
{property Right und Value ähnlich, außerdem Depth etc)}
end;
implementation
constructor TBinTreeNode.Create;
begin
FLeft :=
nil;
FRight :=
nil;
FValue := '
';
end;
destructor TBinTreeNode.Destroy;
begin
FLeft.Free;
FRight.Free;
end;
procedure TBinTreeNode.SetLeft(l: TBinTreeNode);
begin
FLeft := l;
end;
end.