All pastes #27371 Raw Edit

Binary Tree Check

public text v1 · immutable
#27371 ·published 2005-11-02 04:03 UTC
rendered paste body
function IsItABinarySearchTree(t: BinaryTree): TAnswer;
begin
  Result.known  := true;
  Result.answer := true;

  if Assigned(t.left) then begin
    if t.left.data > t.data then begin
      Result.answer := false;
      Result.feedback := IntToStr(t.left.data) + ' is greater than '+
                         IntToStr(t.data)
    end
    else
      Result := IsItABinarySearchTree(t.left);
  end;

  if Assigned(t.right) and (Length(Result.feedback) = 0) then begin
    if t.right.data < t.data then begin
      Result.answer := false;
      Result.feedback := IntToStr(t.right.data) + ' is less than '+
                         IntToStr(t.data)
    end
    else
      Result := IsItABinarySearchTree(t.right);
  end;
end;