Weet er soms iemand hoe ik een pointer NIL kan maken in mijn methode ReplaceElement? Als ik als replacementElement NIL meegeef crasht hij. Dit gebeurt bij binTree^ := replacementElement^ en ik denk dat het komt omdat NIL geen inhoud heeft. Weet er iemand hoe ik dat kan oplossen? Ik wil namelijk hebben dat mijn binTree wijst. Hoe kan ik dat oplossen?
Wel vervelend dat je in oberon in de receiver precies geen VAR kan plaatsen...
Code: Select all
PROCEDURE (binTree : BinaryTree) ReplaceElement (key : INTEGER; replacementElement : BinaryTree);
(* We zoeken via deze methode een bepaalde key, wanneer we de key gevonden hebben zetten we bij het element met die key het replacementElement in de plaats *)
BEGIN
OutExt.String("Ingang procedure");
IF (key = binTree^.key) THEN
binTree^ := replacementElement^;
ELSIF (key < binTree^.key) THEN
IF binTree^.leftchild # NIL THEN
binTree.leftchild^.ReplaceElement(key, replacementElement);
END;
ELSE
IF binTree^.rightchild # NIL THEN
binTree.rightchild^.ReplaceElement(key, replacementElement);
END;
END;
END ReplaceElement;
Groetjes,
Glenn