Читаем Prolog полностью

    линеаризация( Лев, Спис1),

    линеаризация( Прав, Спис2),

    конк( Спис1, [Кор | Спис2], Спис).

9. 12

максэлемент( д( _, Кор, nil), Кор) :-  !.

                            % Корень - самый правый элемент

максэлемент( д( _, _, Прав,), Макс) :-

                            % Правое поддерево непустое

    максэлемент( Прав, Макс).

9. 13

внутри( Элем, д( _, Элем, _ ), [ Элем]).

внутри( Элем, д( Лев, Кор, _ ), [Кор | Путь]) :-

    больше( Кор, Элем),

    внутри( Элем, Лев, Путь).

внутри( Элем,д( _, Кор, Прав), [Кор | Путь]) :-

    больше( Элем, Кор),

    внутри( Элем, Прав, Путь).

9. 14

% Отображение двоичного дерева, растущего сверху вниз

% Предполагается, что каждая вершина занимает при печати

% один символ

отобр( Дер) :-

    уровни( Дер, 0, да).

                            % Обработать все уровни

уровни( Дер, Уров, нет) :-  !.

                            % Ниже уровня Уров больше нет вершин

уровни( Дер, Уров, да) :-

                            % Обработать все уровни, начиная с Уров

    вывод( Дер, Уров, 0, Дальше), nl,

                            % Вывести вершины уровня Уров

    Уров1 is Уров + 1,

    уровни( Дер, Уров1, Дальше).

                            % Обработать следующие уровни

вывод( nil, _, _, _, _ ).

вывод( д( Лев, X, Прав), Уров, ГлубХ, Дальше) :-

    Глуб1 is ГлубХ + 1,

    вывод( Лев, Уров, Глуб1, Дальше),

                            % Вывод левого поддерева

( Уров = ГлубХ,  !,

                            % X на нашем уровне?

        write( X), Дальше = да;

                            % Вывести вершину, продолжить

        write(' ') ),

                            % Иначе - оставить место

        вывод( Прав, Уров, Глуб1, Дальше).

                            % Вывод левого поддерева

Глава 10

10. 1

внутри( Элем, л( Элем)).             % Элемент найден в листе

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

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

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

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

    внутри( Элем, Д2).               % Иначе - во втором поддереве

внутри( Элем, в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 ссылка

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

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

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

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

    арифметика в Прологе

    арифметические

          операторы

          ребусы

    арность

    атом

    атомы

          декомпозиция      ещё 1 ссылка

          синтаксис

          создание

    ALO

          реализация

    AVL-справочник

          вставление элемента

    AVL-дерево

    Б

    база

          данных в Прологе

          знаний

    быстрая сортировка

    В

    вариант предложения

    вероятностные знания

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

    возвращенные оценки

    вопрос типа

          "как"      ещё 1 ссылка

          "почему"      ещё 1 ссылка

    встроенные операторы

          +,  -,  *,  /,  div,  is,  mod      ещё 1 ссылка

    встроенные процедуры

          >,  <,  >=,   =<,   =:=,  =\=

          !      ещё 1 ссылка

          =..

          ==

          \==

          arg

Перейти на страницу:

Похожие книги

12 великих трагедий
12 великих трагедий

Книга «12 великих трагедий» – уникальное издание, позволяющее ознакомиться с самыми знаковыми произведениями в истории мировой драматургии, вышедшими из-под пера выдающихся мастеров жанра.Многие пьесы, включенные в книгу, посвящены реальным историческим персонажам и событиям, однако они творчески переосмыслены и обогащены благодаря оригинальным авторским интерпретациям.Книга включает произведения, созданные со времен греческой античности до начала прошлого века, поэтому внимательные читатели не только насладятся сюжетом пьес, но и увидят основные этапы эволюции драматического и сценаристского искусства.

Александр Николаевич Островский , Иоганн Вольфганг фон Гёте , Оскар Уайльд , Педро Кальдерон , Фридрих Иоганн Кристоф Шиллер

Драматургия / Проза / Зарубежная классическая проза / Европейская старинная литература / Прочая старинная литература / Древние книги
Волчья тропа
Волчья тропа

Мир после ядерной катастрофы. Человечество выжило, но высокие технологии остались в прошлом – цивилизация откатилась назад, во времена Дикого Запада.Своенравная, строптивая Элка была совсем маленькой, когда страшная буря унесла ее в лес. Суровый охотник, приютивший у себя девочку, научил ее всему, что умел сам, – ставить капканы, мастерить ловушки для белок, стрелять из ружья и разделывать дичь.А потом она выросла и узнала страшную тайну, разбившую вдребезги привычную жизнь. И теперь ей остается только одно – бежать далеко на север, на золотые прииски, куда когда-то в поисках счастья ушли ее родители.Это будет долгий, смертельно опасный и трудный путь. Путь во мраке. Путь по Волчьей тропе… Путь, где единственным защитником и другом будет таинственный волк с черной отметиной…

Алексей Семенов , Бет Льюис , Даха Тараторина , Евгения Ляшко , Сергей Васильевич Самаров

Фантастика / Приключения / Боевик / Славянское фэнтези / Прочая старинная литература