Kleiner Zusatz:
Um den Nachbarknoten herauszufinden, sofern vorhanden, müßte der Code dann so aussehen:
Delphi-Quellcode:
function isRootNode(Node:PNode):boolean;
Begin
if Node.ParentNode=nil then
Begin
result:=true; exit;
End;
result:=false;
End;
function getNeighborNode(node:PNode):PNode;
var parent:PNode;
Begin
// die Wurzel hat keinen Nachbarknoten
if isRootNode(node) then
Begin
result:=nil; exit;
End;
// Zeiger miteinander vergleichen
parent:=node.ParentNode;
if node=parent.ChildNode1 then
Begin
result:=parent.ChildNode2; exit;
End else
if node=parent.ChildNode2 then
Begin
result:=parent.ChildNode1; exit;
End;
result:=nil;
End;