23 lines
334 B
Prolog
23 lines
334 B
Prolog
% Ex 5.5
|
|
isBST(null).
|
|
|
|
isBST(T):-
|
|
isBST(T,_,_)
|
|
|
|
isBST(tree(X,null,null),X,X):-
|
|
number(X).
|
|
|
|
isBST(tree(X,L,R),MinL,MaxR):-
|
|
isBST(L,MinL,MaxL),
|
|
isBST(R,MinR,MaxR),
|
|
MaxL=<X,MinR>=X,!.
|
|
|
|
isBST(tree(X,L,null),Min,X):-
|
|
isBST(L,Min,Max),
|
|
Max>X,!.
|
|
|
|
isBST(tree(X,null,R),X,Max):-
|
|
isBST(R,Min,Max),
|
|
Min<X,!.
|
|
|