0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 3
1

Задача по бинарным деревьям

20.12.2013, 23:46. Показов 600. Ответов 2
Метки нет (Все метки)

Надо собрать в список имена всех узлов дерева, лежащих на заданной глубине.
Вот программа, но она почему то не работает, не могу ошибку найти.

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pred1(Tree,Deep,[]):-
    atomic(Tree),
    not(Deep=1).
 
pred1(Tree,1,Node):-
    Tree=..[Node|_].
 
pred1(Tree,Deep,List):-
    Tree=..[Name,Left|Q],
    Rtree=..[Name|Q],
    Deep1 is Deep - 1,
    pred1(Left,Deep1,List);
    pred1(Rtree,Deep,List).
 
pred(Tree,Deep,List):-
    findall(X,
        pred1(Tree,Deep,Q),
        List).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2013, 23:46
Ответы с готовыми решениями:

Литература по бинарным деревьям
Здраствуйте. Надо сделать задание на бинарные деревья, я ничего о них не знаю. Может у кого есть...

Информация по хэш-деревьям (деревьям Меркле)
Здравствуйте, в общем нужны книги с информацией, на русском или английском, о хэш-деревьях, все что...

задача с бинарным файлом
Помогите, пожалуйста, написать на C++. Нужно создать бинарный файл f и записать в него целые числа....

Задача на сравнение колличества минимальных элементов массива с бинарным поиском
Если нужно найти минимальные значения массивов и потом количество минимальных элементов, как тогда...

2
2504 / 1478 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
21.12.2013, 19:18 2
Так можно
Prolog
1
2
3
4
5
6
7
pred(Tree,1,[X]):-!, Tree=..[X|_].
pred(Tree,H,Ans):-Tree=..[_|Sons],H1 is H-1,
    pred_list(Sons,H1,Ans).
 
pred_list([],_,[]).
pred_list([Head|Tail],H,Ans):-pred_list(Tail,H,AnsTail),
    pred(Head,H,AnsHead),append(AnsHead, AnsTail,Ans).
Это для любых, необязательно бинарных.
1
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 3
23.12.2013, 02:15  [ТС] 3
Грымзик, спасибо, работает)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2013, 02:15
Помогаю со студенческими работами здесь

Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:)
Есть бинарное дерево: struct node { int n; // value of node struct node *left; // left subtree...

Вопрос по деревьям
Имеется структурка: struct tree { char* string; tree* childs; }; Нужно сделать так, чтобы с...

Cоздание презентации по деревьям в C#
Задали создать презентацию по деревьям в C#. Мои знания C# совсем поверхностные. В интернете...

Литература по графам, деревьям С++
Доброго времени суток. Подскажите пожалуйста, где можно почитать про деревья. Желательно с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru