Создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева - Prolog

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Помогите пожалуйста с такой вот задачкой, нужно создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева. Заранее спасибо!

Решение задачи: «Создать список, элементами которого являются значения вершин каждого второго поддерева бинарного дерева»

textual
Листинг программы
  1. domains
  2. chartree = tree(char, chartree, chartree);
  3. end
  4. predicates
  5. do(chartree)
  6. action(integer, chartree, chartree)
  7. create_tree(chartree, chartree)
  8. insert(char, chartree, chartree)
  9. find(char,chartree)
  10. write_tree(chartree)
  11. repeat
  12. goal do(end).
  13. clauses
  14. do(Tree):-
  15. makewindow(1,7,7,"character tree sort",0, 0, 20, 60),
  16. repeat,
  17. clearwindow,
  18. write("Enter 1 to create a tree\n"),
  19. write("Enter 2 to show tree\n"),
  20. write("Enter 3 to find element\n"),
  21. write("Enter 7 to exit\n"),
  22. readint(X),
  23. action(X, Tree, NewTree),
  24. do(NewTree).
  25.         action(1, Tree, NewTree):-
  26.             write("Enter characters or # toend: "),
  27.             create_Tree(Tree, NewTree).
  28.         action(2, Tree, Tree):-
  29.             write_Tree(Tree),
  30.              
  31.             write("\nPress a key to continue"),
  32.             readchar(_)
  33.     action(3, Tree, Tree):-
  34.                         write("\Enter element"),
  35.                         readchar(S),
  36.                         find(S,Tree),
  37.             write("\nPress a key to continue"),
  38.             readchar(_).   
  39. .       action(7, _, end):- exit.
  40.         create_Tree(Tree, NewTree):-
  41.             readchar(C),
  42.             C <> 0'#' , !,
  43.             write(C, " "),
  44.             insert(C, Tree, TempTree),
  45.            
  46.         create_Tree(TempTree,NewTree).
  47.        
  48.         create_Tree(Tree, Tree).
  49.        
  50.         insert(New, end, tree(New, end, end)):- !.
  51.        
  52.         insert(New,
  53.                 tree(Element, Left, Right),
  54.                 tree(Element, NewLeft, Right)):-
  55.         New < Element, !,
  56.         insert(New, Left, NewLeft).
  57.         insert(New, tree(Element, Left, Right),
  58.                 tree(Element, Left, NewRight)):-
  59.         insert(New, Right, NewRight).
  60.          
  61.         find(Element, tree(Element,_, _)):-
  62.                              write("\Yes")  
  63.         find(_,end).
  64.         find(Item,tree(X,Left, _)):-
  65.                 Item < X,!,
  66.                         find(Item, Left).
  67.                 find(Item,tree(_, _, Right)):-
  68.                                 find(Item, Right).
  69.        
  70.                     write_Tree(end).
  71.        
  72.         write_Tree(tree(Item, Left, Right)):-
  73.             write_Tree(Left),
  74.             write(Item, " "),
  75.             write_Tree(Right).
  76.         repeat.
  77.         repeat:-repeat.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы