Коллекции деревьев в Scala

Я хочу реализовать дерево в Scala. В моем конкретном дереве используются панели Swing Split, чтобы дать несколько представлений географической карты. Любая панель внутри разделенной панели может быть дополнительно разделена, чтобы обеспечить дополнительный вид. Правильно ли я говорю, что ни TreeMap, ни TreeSet не обеспечивают функциональность Дерева? Пожалуйста, извините меня, если я неправильно понял это. Мне кажется, что должны быть стандартные коллекции Tree, и продолжать изобретать велосипед — плохая практика. Существует ли реализация Tree, которая могла бы стать будущим стандартом Scala?

Все деревья имеют три типа элементов :: корень, узлы и листья. Листья и узлы должны иметь одну ссылку на родителя. Корень и узлы могут иметь несколько ссылок на дочерние узлы и листья. Листья не имеют дочерних элементов. Узлы и корень не могут быть удалены без удаления их потомков. возможно, есть и другие правила/ограничения, которые я пропустил.

Это кажется достаточно общей спецификацией, чтобы оправдать стандартную коллекцию. Я бы также предложил создать стандартную коллекцию подклассов для случая, когда Root и Nodes могут иметь только 2 дочерних элемента или один дочерний лист. Это то, что я хочу в моем конкретном случае.

9
задан Rich Oliver 1 August 2015 в 01:38
поделиться