Содержание
- Задачи
- Задача о расстановке ферзей
- Загадка Эйнштейна
- Унификация и объекты
- Унификация
- Определение
- Наследование
- Мультиметоды
Домашнее задание 14. Деревья поиска на Prolog
- Реализуйте ассоциативный массив (map) на основе деревьев поиска. Для решения можно реализовать любое дерево поиска логарифмической высоты.
Простой вариант. Разработайте правила:
map_build(ListMap, TreeMap)
, строящее дерево из упорядоченного списка пар ключ-значение (O(n));map_get(TreeMap, Key, Value)
, проверяющее, что массив содержит заданную пару ключ-значение (O(log n)).
Сложный вариант. Дополнительно разработайте правила:
map_put(TreeMap, Key, Value, Result)
; добавляющее пару ключ-значение в массив, или заменяющее текущее значение для ключа (O(log n));map_remove(TreeMap, Key, Result)
удаляющее отображение для ключа (O(log n));map_build(ListMap, TreeMap)
, строящее дерево из неупорядоченного списка пар ключ-значение (O(n log n)).