Создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д