Создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева - Prolog
Формулировка задачи:
Доброго времени суток. Помогите пожалуйста с такой вот задачкой, нужно создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева. Заранее спасибо!
Решение задачи: «Создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева»
textual
Листинг программы
- domains
- chartree = tree(char, chartree, chartree);
- end
- predicates
- do(chartree)
- action(integer, chartree, chartree)
- create_tree(chartree, chartree)
- insert(char, chartree, chartree)
- find(char,chartree)
- write_tree(chartree)
- repeat
- goal do(end).
- clauses
- do(Tree):-
- makewindow(1,7,7,"character tree sort",0, 0, 20, 60),
- repeat,
- clearwindow,
- write("Enter 1 to create a tree\n"),
- write("Enter 2 to show tree\n"),
- write("Enter 3 to find element\n"),
- write("Enter 7 to exit\n"),
- readint(X),
- action(X, Tree, NewTree),
- do(NewTree).
- action(1, Tree, NewTree):-
- write("Enter characters or # toend: "),
- create_Tree(Tree, NewTree).
- action(2, Tree, Tree):-
- write_Tree(Tree),
- write("\nPress a key to continue"),
- readchar(_)
- action(3, Tree, Tree):-
- write("\Enter element"),
- readchar(S),
- find(S,Tree),
- write("\nPress a key to continue"),
- readchar(_).
- . action(7, _, end):- exit.
- create_Tree(Tree, NewTree):-
- readchar(C),
- C <> 0'#' , !,
- write(C, " "),
- 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)):-
- New < Element, !,
- insert(New, Left, NewLeft).
- insert(New, tree(Element, Left, Right),
- tree(Element, Left, NewRight)):-
- insert(New, Right, NewRight).
- find(Element, tree(Element,_, _)):-
- write("\Yes")
- find(_,end).
- find(Item,tree(X,Left, _)):-
- Item < X,!,
- find(Item, Left).
- find(Item,tree(_, _, Right)):-
- find(Item, Right).
- write_Tree(end).
- write_Tree(tree(Item, Left, Right)):-
- write_Tree(Left),
- write(Item, " "),
- write_Tree(Right).
- repeat.
- repeat:-repeat.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д