внутри( Элем, в3( Д1, М2, Д2, М3, Д3) ):-

                                                    % Вершина имеет три поддерева

    больше( М2, Элем),  !,

                % Элемент не во втором и не в третьем поддереве

    внутри( Элем, Д1);               % Поиск в первом поддереве

    больше( М3, Элем),  !,         % Элемент не в третьем поддереве

    внутри( Элем, Д2);               % Поиск во втором поддереве

    внутри( Элем, Д3).               % Поиск в третьем поддереве

10. 3

avl( Дер) :-

    аvl( Дер, Глуб).         % Дер является AVL-деревом глубины Глуб

avl( nil, 0).                     % Пустое дерево  -   AVL -дерево глубины 0

avl( д( Лев, Кор, Прав), Г) :-

    avl( Лев, ГЛ),

    avl( Прав, ГП),

    ( ГЛ is ГП; ГЛ is ГП + 1; ГЛ is ГП - 1),

                                    % Глубины поддеревьев примерно совпадают

        макс( ГЛ, ГП, Г).

макс1( U, V, М) :-                                     % М = 1 + макс( U, V)

    U > V,  !, М is U + 1;

    М is V + 1.

Глава 11

11. 1

вглубину1( [Верш | Путь], [Верш | Путь]) :-

    цель( Верш).

вглубину1( [Верш | Путь], Решение) :-

    после( Верш, Верш1),

    not принадлежит( Верш1, Путь),

    вглубину1( [ Верш1, Верш | Путь], Решение).

11. 6

решить( СтартМнож, Решение) :-

                            % СтартМнож - множество стартовых вершин

    bagof( [Верш], принадлежит( Верш, СтартМнож),

                                                        Пути),

    вширину( Пути, Решение).

Назад | Содержание | Вперёд

Назад | Содержание | Вперёд

    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

    А

    абстракция данных

    автомат недетерминированный

    автоматический возврат      ещё 1 ссылка

    альфа-бета алгоритм

          программная реализация

          эффективность

    анонимная переменная

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату