Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Бинарные деревья

274
05 декабря 2006 года
Lone Wolf
1.3K / / 26.11.2006
Ай нид йор хэлп.
Язык XLISP
Задание Разработать класс для представления объектов-бинарных деревьев. Вершины в представлении дерева обозначаются уникальными символьными атомами. Предусмотреть операции расширения множества вершин, исключения вершин из дерева, проверки вхождения вершины в дерево, вывода в виде списка из двух элементов вершин-потомков для указанной вершины (для листьев это пустой список nil).

буду благодарен за любые подсказки. Главная проблема, это то что я не совсем понимаю концепцую программирования на даном языке...
274
07 декабря 2006 года
Lone Wolf
1.3K / / 26.11.2006
Неужели, никто подсказать ниче не может? Я вот не могу понять. если реализовывать в СИ, то тут все ОК, укаазтели тому подобное, а вот на Лиспе..... что-то жо меня не доходит
547
07 декабря 2006 года
Hydra
488 / / 20.06.2006
Класс?! на Хлиспе? .oO
Скорее набор функций для работы с деревьями.
P.S. Уточни что подразумеваешь под:
Цитата:

Предусмотреть операции расширения множества вершин


Добавление вершины? в какое место

кинь лисп на [email]hydraxl@mail.ru[/email] - нарисую

274
07 декабря 2006 года
Lone Wolf
1.3K / / 26.11.2006
да класс.
 
Код:
(setq Tree (send Class :new '(h l1 l2) ))
это вроде обьявление. а потом если я правильно понял, через функцию send присваиваются методы.... вроде так.
вершина всмысле новый листок дерева. т.е добавление в одну из самых последних вершин, где листики равны нилу

лисп отправил.
заранее большое спасибо.
547
11 декабря 2006 года
Hydra
488 / / 20.06.2006
Пока вывод и добавление накропал - времени особо нет. Если еще что подпишу, выложу.
Код:
;Create class
(setq Tree (send Class :new '(root tleft tright)))

;Print tree
(send Tree :answer :show '()
  '((cond ((null root) (print NIL))
          ((not (null tleft)) ((print root) (send tleft :show)))
          ((not (null tright)) ((print root) (send tright :show)))
          (t (print root))))
)

;Add item
(send Tree :answer :add '(n)
  '((cond ((null root) (setq root n))
          ((> root n)           ; Add to left branch
            (if (null tleft)
                ((setq tleft (send Tree :new)) (send tleft :add n))
                (send tleft :add n)))
          (t
            (if (null tleft)
                ((setq tleft (send Tree :new)) (send tleft :add n))
                (send tleft :add n)))
   ) self)
)
274
11 декабря 2006 года
Lone Wolf
1.3K / / 26.11.2006
Большое спасибо.
77K
10 ноября 2011 года
Darisha
1 / / 10.11.2011
Здравствуйте!
Я понимаю что эта тема была давно и всеми забыта, но сейчас я столкнулась с решением именно этой задачи и если ктото доделал ее до конца скиньте плз исходники))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог