Описание слайда:
tree(K, LeftT, RightT),
tree(K, LeftT, RightT),
где К – элемент, находящийся в вершине; LeftT и RightT – левое и правое поддерево соответственно.
create_tree(A, tree(A, empty, empty)). % создание дерева
insert_left(X, tree(A, _, B), tree(A, X, B)). % включение элемента данных A, как левого поддерева B
insert_right(X, tree(A, B, _), tree(A, B, X)). % включение элемента данных A, как правого поддерева B
Для обхода бинарного дерева «сверху вниз» опишем предикат:
up_to_down(tree(X, LTr, RTr), Xs) :- up_to_down(Ltr, Ls), up_to_down(RTr, Rs), append([X|Ls], Rs, Xs).
up_to_down(empty, []).
append – это процедура append(LeftList, RightList, ListRes), где ListRes является результатом слияния списков LeftList, RightList.