Отредактировано после замечания Алекса Таггарта ниже.
Я использую молнию, чтобы легко перемещаться и редактировать дерево, которое может вырасти до многих тысяч узлов.Каждый узел является неполным, когда он впервые создан.Данные будут все время добавляться / удаляться в случайных позициях, конечные узлы будут заменяться ветвями и т. Д.
Дерево может быть очень несбалансированным.Быстрый произвольный доступ к узлу также важен.
Реализация будет состоять в том, чтобы обходить дерево с помощью молнии и создавать хэш-таблицу узлов, проиндексированных по ключу.Излишне говорить, что вышесказанное было бы очень неэффективно, поскольку:
- 2 копии каждого узла необходимо создать
- любые изменения должны последовательно отражаться между 2 структурами данных (дерево иhashmap).
Короче говоря, существует ли эффективный во времени / пространстве способ сочетания простоты перемещения / обновления с помощью молнии и быстрого доступа к хеш-таблице в clojure?