, . , S, .
in (X, S). X S.
9,
'" S - |
X S - |
add (S, X, SI). S1.
del (S, X, SI). 31.
add. , , . . 9.6 , . addleaf (D, X, Dl>.
, 9.6. ; : addf Dl, 6, D2>, addf D2, 7, D3), addt 03, 4, D4)
.
X t (nil, X, nil).
X D, DI = D ( ).
D X, X D; D
X, X .
9.4.
9.4.
% addleaf [ Tree, X, NewTree):
X :": Tree % NewTree
addleaft nil, X, t(nil, X, nil)).
addleaf! t(Left, X, Right), X, t(Left, X, Right)).
I. Prolog
addleaft t(Left, Boot, Right), X, t(Leftlr Root, Right)):-gt Root, X), addleaft Left, X, Leftl).
addleafl t(Left, Root, Right), X, t (, Left, Root, Rightl)):-gt (X, Root), addleaft Right, , Rightl).
. , . , .
delleaf{ D1, X, D2):-addleaf (D2, >:, Dl).
, X , , . 9.7. X . Left Right. X Left Right . X ( ), .