none
Назначение веса в динамическом дереве RRS feed

  • Вопрос

  • Есть динамическое дерево с многомерной вложенностью. у каждого узла может быть какая-то коллекция элементов. Узлы в дереве постоянно меняют своих родителей. Задача: каждому элементу в коллекциях узлов присвоить свой вес, который бы реагировал на изменение родителя его узла. Как оптимальней реализовать такое индексирование?
    24 февраля 2012 г. 9:51

Ответы

Все ответы

  • Вопрос слишком в общем виде :)

    все зависит от того, как вы будете использовать индекс. Если нужно быстро находить узлы с определенным весом - то проще всего завести общий Dictionary<вес, List<Node>>, и при смене родителя переносить узел в список с нужным ключем. Если нужно еще и искать узлы с наименьшим/наибольшим весом - то взять Ordered Dictionary.

    24 февраля 2012 г. 15:58
    Модератор
  • Необходимо однозначно сортировать элементы по этому весу в запросе необходимого узла и соответственно его потомков.
    25 февраля 2012 г. 7:08
  • Используйте красно-чёрные деревья. Они достаточно хорошо сбалансированы. Кстати, они используются в SortedList-е.
    27 февраля 2012 г. 7:44
    Отвечающий
  • а можете поподробнее пояснить?
    27 февраля 2012 г. 8:41
  • Пардон, у вас же много потомков, а не два... Посмотрите на В-дерево
    • Помечено в качестве ответа Abolmasov Dmitry 2 марта 2012 г. 6:31
    27 февраля 2012 г. 9:29
    Отвечающий