Бинарные деревья задаются с помощью функтора tree(Element, Left, Right), где Element – элемент, находящийся в вершине, Left и Right – соответственно левое и правое поддерево.
Пример 11. Бинарное дерево
tree(a, tree(b, void, void), tree(c, void, void)).
Определение бинарного дерева:
binary_tree(void).
binary_tree(tree(Element, Left, Right)):-
binary_tree(Left), binary_tree(Right).
Пример 12. Поиск элемента в бинарном дереве:
tree_member(Element, Tree):-
Element является элементом бинарного дерева Tree.
tree_member(X, tree(X, Left, Right)).
tree_member(X, tree(Y, Left, Right)):- tree_member(X, Left).
tree_member(X, tree(Y, Left, Right)):- tree_member(X, Right).