Все доброго времени суток всем.
Что-то решил поиграться с двоичными деревьями, и возник у меня вопрос...
что насчёт удаления определённой ноды (листа)... ясное дело, можно
сделать это в стиле C или любого другого императивного ЯП, но меня
интересует, можно ли это сделать как-либо красивее, применив,
возможно, функциональную парадигму?
сейчас у меня есть вот такие функции:
;; добавление листа/ноды
(defun insert-node (tree new-node)
(if (not tree) new-node
(if (>= (first tree) (first new-node))
(list (first tree)
(insert-node (second tree) new-node)
(third tree))
(list (first tree)
(second tree)
(insert-node (third tree) new-node)))))
;; создание листа/ноды
(defun make-node (element)
(list element nil nil))
;; собственно построение дерева
(defun make-tree (elements)
(reduce #'insert-node
(map 'list #'make-node elements)))
сразу скажу, я не заморачивался о сбалансированности, и строил дерево в лоб,
самым простым способом...
ну а теперь собственно буду ждать, может кто-нить подскажет,
как удалить некий лист, самым красивым способом? :)
Ответ на:
комментарий
от anonymous


Ответ на:
комментарий
от ott

Ответ на:
комментарий
от Cy6erBr4in

Ответ на:
комментарий
от Cy6erBr4in

Ответ на:
комментарий
от ott

Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от Vadim_Z

Ответ на:
комментарий
от Cy6erBr4in

Ответ на:
комментарий
от Vadim_Z

Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от Vadim_Z

Ответ на:
комментарий
от Cy6erBr4in
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [common lisp][ищу морфизм] ещё одна годная задачка про списки (2010)
- Форум [javascript][Alloy UI] Расширить TreeView и TreeNode (2011)
- Форум let сохраняет значения между вызовами функции (2016)
- Форум C / Базовые типы / 100 вопросов (2008)
- Форум Выясняем с помощью Emacs, какой ЯП лучше (2024)
- Форум Разбор кода на McCLIM (2020)
- Форум rabbitmq remove node from cluster (2019)
- Форум задачка о binary search tree / часть тестов провалено (2018)
- Форум Tree (2023)
- Форум tree (2006)