Описание слайда:
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.