Деревья — пролог


Лабораторная работа № 5
ДЕРЕВЬЯ

№ 9.Подсчитать число вершин дерева, значения которых лежат в определенном задаваемом диапазоне.

domains
treetype = tree (integer, treetype, treetype); empty ()

predicates
print(treetype,integer)
clauses
print(empty,0).
print(tree(X, Z, Y),COUNT):-
X>0,X<50, COUNT1=COUNT+1, write(COUNT,"- вершин "), write(X), nl, print(Z,COUNT1), print(Y,COUNT1). goal write("Диапозон 0...50:"),nl, print(tree (25,tree (5,tree (1,tree (5,tree (8, empty, empty), tree(11, empty, empty)), empty), empty),tree(70,tree(67,empty,empty),tree (122, empty, empty))),1),nl,fail;true. domains inttree = tree(integer,inttree,inttree); end predicates nondeterm do(inttree) action(integer,inttree,inttree) create_tree(inttree,inttree) insert(integer,inttree,inttree) write_tree(inttree) sumtree(inttree,integer) nondeterm repeat clauses do(Tree):- repeat,nl, write("*******************************************************"),nl, write("Введите 1 для изменения дерева\n"), write("Введите 2 для вывода дерева\n"), write("Введите 3 для вывода суммы\n"), write("Введите 999 для выхода из программы\n"), write("*******************************************************"),nl, write("Enter number - "), readint(X),nl, action(X, Tree, NewTree), do(NewTree). action(1,Tree,NewTree):- write("Введите 999 для окончания ввода\n"), create_Tree(Tree, NewTree). action(2,Tree,Tree):- write_Tree(Tree), write("\nPress a key to continue"), readint(_),nl. action(3,Tree,Tree):- sumtree(Tree, Sum), write("Сумма вершин дерева равна ", Sum, "\n"), write("\nPress a key to continue"). action(999, _, end):- exit. create_Tree(Tree, NewTree):- readint(C), C<>999,!,
insert(C, Tree, TempTree),
create_Tree(TempTree, NewTree).
create_Tree(Tree, Tree).

insert(New,end,tree(New,end,end)):-!.
insert(New,tree(Element,Left,Right),tree(Element,NewLeft,Right)):-
New0,X<50, COUNT1=COUNT+1, write(COUNT,"- вершин "), write(X), nl, print(Z,COUNT1), print(Y,COUNT1). goal write("Диапозон 0...50:"),nl, print(tree (25,tree (5,tree (1,tree (5,tree (8, empty, empty), tree(11, empty, empty)), empty), empty),tree(70,tree(67,empty,empty),tree (122, empty, empty))),1),nl,fail;true.

Загрузка...