Have been trying to write a piece of code, that will allow me to spot weather a tree is a correct Binary Tree, or not.
I feel im quite close to cracking it, but the whole thing is now really confusing me. Can anyone see where im going wrong?
Any help would be great. ThanksCode:procedure TraverseTree(var flag: integer;t: BinaryTree); // Traverse Tree Begin If t <> nil then Begin with t^ do TraverseTree(flag, t^.left); if ((t^.left<> nil) AND (t^.right <> nil)) Then begin if t^.left.data > t.data then flag := flag + 1 else flag := flag; end; TraverseTree(flag, t^.right); if ((t^.left<> nil) AND (t^.right <> nil)) Then begin if t^.right.data < t.data then flag := flag + 1 else flag := flag; end End End; function IsItABinarySearchTree(t:BinaryTree): TAnswer; var ans: TAnswer; flag: integer; begin flag := 0; ans.known := true; TraverseTree(flag, t); If flag = 0 then ans.answer := true Else ans.answer := False; IsItABinarySearchTree := ans End;




Reply With Quote